我有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/