错误:从NodeJS app使用云sql for MYSQL时连接ECONNREFUSED 127.0.0.1:3306

时间:2017-10-08 17:25:15

标签: google-cloud-platform google-cloud-sql google-api-nodejs-client cloud-sql-proxy

我按照本sample app link中提到的所有步骤操作。 GitHubLink。当运行脚本(npm运行init-cloudsql)初始化mysql数据库时,我收到以下错误:

D:\gcloud\nodejs-getting-started\2-structured-data\books\model-cloudsql.js:143
    throw err;
    ^
Error: connect ECONNREFUSED 127.0.0.1:3306
at Object.exports._errnoException (util.js:1018:11)
at exports._exceptionWithHostPort (util.js:1041:20)
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1090:14)
--------------------
at Protocol._enqueue (D:\gcloud\nodejs-getting-started\2-structured- data\node_modules\mysql\lib\protocol\Protocol.js:145:48)                                                                                                          
at Protocol.handshake (D:\gcloud\nodejs-getting-started\2-structured-data\node_modules\mysql\lib\protocol\Protocol.js:52:23)                                                                                                                
at Connection.connect (D:\gcloud\nodejs-getting-started\2-structured-data\node_modules\mysql\lib\Connection.js:130:18)                                                                                                                
at Connection._implyConnect (D:\gcloud\nodejs-getting-started\2-structured-data\node_modules\mysql\lib\Connection.js:461:10)                                                                                                                
at Connection.query (D:\gcloud\nodejs-getting-started\2-structured-data\node_modules\mysql\lib\Connection.js:206:8)                                                                                                               
at createSchema (D:\gcloud\nodejs-getting-started\2-structured-data\books\model-cloudsql.js:126:14)                                                                                                              
at prompt.get (D:\gcloud\nodejs-getting-started\2-structured-data\books\model-cloudsql.js:117:5)                                                                                                              
at D:\gcloud\nodejs-getting-started\2-structured-data\node_modules\prompt\lib\prompt.js:336:32                                                                                                            
at D:\gcloud\nodejs-getting-started\2-structured-data\node_modules\utile\node_modules\async\lib\async.js:154:25                                                                                                            
at assembler (D:\gcloud\nodejs-getting-started\2-structured-data\node_modules\prompt\lib\prompt.js:333:9)  

我缺少什么?我无法解决此错误。有人可以帮我解决这个问题吗?

3 个答案:

答案 0 :(得分:1)

您共享的错误消息表明您的计算机无法连接到端口3307上的实例的IP地址(代理使用该IP地址)。我在自己的机器上测试了这个,它正在那里听。这可能表示您的计算机或本地网络上的防火墙阻止了端口3307上的出站连接。请尝试在防火墙中打开它,看看是否可以连接。

答案 1 :(得分:0)

您需要将IP列入白名单才能访问Cloud SQL。 https://cloud.google.com/sql/docs/mysql/instance-access-control

答案 2 :(得分:0)

当您运行PopSQL或Node.js的实例并且MySQL服务器不在本地计算机上运行时,会发生此错误。 请尝试以下步骤

  1. 按Windows键和键盘上的R。这将打开命令提示符
  2. 键入services.msc,然后单击“确定”。
  3. 在弹出的服务中,检查MYSQL57。如果它不在运行状态,请单击对话框左列中的运行该服务
  4. 服务运行后,从连接窗口连接到POPSQL