2017-06-23 360 views
0

尝试连接远程mysql db时出现错误SequelizeConnectionError: connect ETIMEDOUT连接远程mysql时连接ETIMEOUT db

当我尝试连接到本地mysql数据库时,可以成功建立连接。

我使用包含模型/ index.js内sequelize的默认数据库连接代码new Sequelize(...),用下面的配置(充满了正确的值):

"production": { 
    "username": "root", 
    "password": null, 
    "database": "database_production", 
    "host": "127.0.0.1", 
    "dialect": "mysql" 
} 

我试图连接到远程分贝一个简单的PHP脚本,它的工作(所以我们可以排除在远程数据库服务器端的问题)

任何想法?

+0

您说你的生产系统是远程系统,但上面的主机是127.0.0.1。那是怎么回事? –

回答

0

可能有几个方面的原因,上市了几个我曾经面临,

不是由MySQL服务器授予
  • 远程root访问权限。
  • 配置由环境过滤,理想情况下使用NODE_ENV变量完成,可以尝试使用prod config在本地运行服务器。在我的情况下,我会做一些像NODE_ENV=production node server.js。假设server.js是开始文件。您可以尝试在new Sequelize(...)之前记录该值,这可能会更好地了解进入的内容。
+0

最后发现远程mysql服务器没有设置为接受来自外部网络的传入连接! – artze