我有Nginx + Passenger + Rails3。

乘客抛出以下错误:

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


我可以使用mysql命令连接到MySql。我认为运行乘客的用户没有权限。

我想知道:如何确定正在运行的用户以及如何授予访问mysql的权限。

谢谢

最佳答案

如果无法连接,则可能是:


您的MySQL进程绑定到127.0.0.1,并且不能接受来自远程计算机的连接。
您的防火墙已阻止端口3306。


您确定mysql正在连接到同一遥控器吗?您可能正在运行本地服务器,该服务器允许使用默认配置进行访问。

需要注意的是,向一般的Internet开放3306是一个坏主意,因此您将需要非常谨慎地选择这样做的方式。最佳实践是尽可能使用私有IP,例如10.x.x.x,172.16.x.x或192.168.x.x。有许多可以安全使用的保留块,但是不能将其路由到本地网络之外。

您还应该检查所定义的config/database.yml设置是否与mysql命令行工具所使用的设置相同。乘客不被视为特殊情况。

关于mysql - 乘客未到达MySql,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13995134/

10-12 12:23
查看更多