Нужен ли мне MySQL, установленный локально?

#mysql #ruby-on-rails

#mysql #ruby-on-rails

Вопрос:

У меня есть 2 сервера ubuntu 11.04 с IP-адресами 192.168.9.14 и 192.168.9.15. На .14 я установил ruby rails, а на .15 я установил mysql, и база данных для моего сайта находится на .15

Теперь я хочу, чтобы rails 2.3.8 подключался с .14 к базе данных на .15. У меня есть следующее в моей базе данных.yml на .14.

 production:
  adapter: mysql
  encoding: utf8
  reconnect: false
  database: gtt_production
  pool: 5
  username: root
  password: admin
  host: 192.168.9.15
  port: 3306
 

В настоящее время я получаю сообщение об ошибке, отображаемое в моем журнале rails следующим образом:

Не удается подключиться к серверу MySQL на 192.168.9.15.

Первоначально я думал, что это связано с привилегиями пользователя на сервере mysql, но теперь я добавил это и все еще получаю ту же проблему.

Затем я попытался подключиться через терминал (командная строка) следующим образом:

 mysql -h 192.168.9.15 -uroot -p
 

и я получил сообщение о том, что :

 The program 'mysql' can be found in the following packages:
   * mysql-client-cor-5.1
 Try: sudo apt-get install <selected package>
 

… И это заставляет меня думать, что мне нужна локальная копия mysql, даже если база данных полностью находится на другом сервере.

Пожалуйста, кто-нибудь может подтвердить, верна ли моя «догадка» или существует какой-то «умный» способ подключения к серверу mysql на .15 без установки mysql на .14.

Комментарии:

1. вам нужно будет только установить клиент mysql, чтобы запустить mysql команду из консоли. Однако вы должны знать, что то, что вам нужно установить, чтобы запустить клиент mysql из командной строки, полностью отделено от того, что вам нужно для подключения Rails.

Ответ №1:

вам нужен клиент — sudo apt-get install mysql сервер обычно mysql-server

Вы установили mysql gem для ruby? Это понадобится Rails для подключения к БД. Также убедитесь, что .15 может принимать удаленные запросы от .14.

Комментарии:

1. Спасибо за ваше предложение. Я попытался выполнить установку mysql с помощью sudo apt-get, и мне ответили: «Не удалось найти пакет mysql». Когда я устанавливал mysql на .15, я сделал следующее: sudo apt-get install mysql-server libmysql-ruby libmysqlclient-dev. Мне интересно, должен ли я сделать последние 2 в этом случае. Знаете ли вы или кто-нибудь еще?

2. попробуйте sudo apt-get install mysql-client-cor-5.1 (я не уверен, какую версию вы установили, цифры имеют значение, например. 50 против 51 против 55). Кроме того, вы установили драгоценный камень? gem list и посмотрите, есть ли mysql. Если нет, запустите sudo gem install mysql

3. Хорошо, это БОЛЬ. Я хотел бы принять ОБА ответа (ваш и luckytaxis), поскольку вы оба предоставили часть ответа. Мне пришлось изменить свой файл .cnf для правильной привязки к 192.168.9.14, и мне пришлось установить клиент mysql. Команда, для которой apt-get install mysql-client .

Ответ №2:

Настроили ли вы свою базу данных mysql для прослушивания внешнего IP-трафика? Я не думаю, что MySQL по умолчанию разрешает внешние подключения, только трафик локального хоста. Проверьте свой my.cnf.

Комментарии:

1. Спасибо за ваше предложение, но у меня есть другая конфигурация из 2 серверов, настроенных, как те, которые я упомянул, ЗА ИСКЛЮЧЕНИЕМ того, что на сервере, с которого я пытаюсь подключиться, также уже установлен mysql (server), а в файле my.cnf отображается только bind = 127.0.0.1. Так что я предполагаю, что это не ответздесь. Я подтвержду это позже, как только попробую предложение luckytaxi.

2. Хорошо, это БОЛЬ. Я хотел бы принять ОБА ответа (ваш и luckytaxis), поскольку вы оба предоставили часть ответа. Мне пришлось изменить свой файл .cnf для правильной привязки к 192.168.9.14, и мне пришлось установить клиент mysql. Команда, для которой apt-get install mysql-client

3. Со мной проблем нет, приятель. Ваша проблема решена, это важно 🙂