2017-06-23 358 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