错误:从NodeJS应用程序对MYSQL使用云数据库时连接ECONNREFUSED 127.0.0.1:3306

问题描述:

我遵循此sample app link中提及的所有步骤。 GitHubLink。当运行脚本(NPM运行的init-CLOUDSQL)来初始化mysql数据库,我收到以下错误:错误:从NodeJS应用程序对MYSQL使用云数据库时连接ECONNREFUSED 127.0.0.1:3306

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) 

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

+0

该错误表示Cloud SQL代理未在您的实例上正确运行。请分享'./cloud_sql_proxy -instances =“[YOUR_INSTANCE_CONNECTION_NAME]”= tcp:3306'的输出结果,以帮助我们找出原因。也许还可以尝试添加'-verbose'来收集更多信息。 – David

+0

修复问题后:>> D:\> cloud_sql_proxy.exe -instances =“gmailenhancer-182114:asia-east1:gmail-enhancer”= tcp:3306 2017/10/09 12:02:10在127.0上收听.0.1:3306 for gmailenhancer-182114:asia-east1:gmail-enhancer 2017/10/09 12:02:10准备好新连接 –

+1

但是,当连接到云数据库时出现以下错误 - >> '2017/10/09 12:35:07 Throttling refreshCfg(gmailenhancer-182114:asia-east1:gmail-enhancer):它只被称为21.0262008s前 2017/10/09 12:35:07无法连接到“gmailenhancer-182114:asia-east1:gmail-enhancer”:dial tcp 35.194.177.25:3307:connectex:连接尝试失败,因为连接方在一段时间后没有正确响应,或者由于连接的主机有连接失败没有回应“。 –

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

+0

现在正在工作。感谢解决方案@David。 –

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

+0

感谢您的评论,但我正在尝试使用云端SQL代理连接到不需要白名单地址的云端SQL。 –