2012-12-21 2 views
0

У меня есть Nginx + Passenger + Rails3.Пассажир не доходит до MySql

Пассажир выдает следующее сообщение об ошибке:

Can't connect to MySQL server on '184.169.131.xxx' (111) (Mysql2::Error) 

Я могу подключиться к MySql с помощью команды MySQL. Я думаю, что пользователь, у которого запущен Passenger, не имеет разрешений.

Я хочу знать: как определить, какой пользователь работает с пассажиром, и как предоставить разрешения для доступа к mysql.

Благодаря

+0

проверить это [руководство] (http://www.modrails.com/documentation/Users%20guide%20Apache.html#_security_options) В принципе, пассажир - это тот, кому принадлежит config/environment.rb или config.ru; кроме случаев, когда владелец является корневым, тогда пассажир работает как пользователь «никто». Вы можете сказать пассажиру использовать пользователя по умолчанию, написав «PassengerDefaultUser tony» в файле пассажир.conf в вашем каталоге apache. –

ответ

1

Если это не удается, то, скорее всего, что либо:

  • Ваш процесс MySQL связан с 127.0.0.1 и не может принимать соединения с удаленных машин.
  • Ваш брандмауэр блокирует порт 3306.

Вы уверены, что mysql подключается к той же пульта дистанционного управления? Возможно, вы используете локальный сервер, который позволяет получить доступ с настройкой по умолчанию.

В качестве примечания, открытие 3306 в общий интернет - плохая идея, поэтому вы захотите быть очень избирательным в том, как вы это делаете. Лучшей практикой является использование частных IP-адресов, когда это возможно, например 10.x.x.x, 172.16.x.x или 192.168.x.x. Существует несколько зарезервированных блоков, которые можно безопасно использовать, но они не могут быть перенаправлены за пределы вашей локальной сети.

Вы также должны проверить, что все установленные вами config/database.yml параметры, которые вы используете, используются с помощью средства командной строки mysql. Пассажир не рассматривается как особый случай.

Смежные вопросы