我创建了一个由 docker-compose
. 应用程序需要一个mysql服务器,该服务器也已启动,但当我在节点应用程序中访问服务器时,出现以下错误:
events.js:136
throw er; // Unhandled 'error' event
^
Error: connect ECONNREFUSED 127.0.0.1:3306
at Object._errnoException (util.js:1031:13)
at _exceptionWithHostPort (util.js:1052:20)
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1195:14)
--------------------
at Protocol._enqueue (/usr/src/node_modules/mysql/lib/protocol/Protocol.js:145:48)
at Protocol.handshake (/usr/src/node_modules/mysql/lib/protocol/Protocol.js:52:23)
at Connection.connect (/usr/src/node_modules/mysql/lib/Connection.js:130:18)
at Connection._implyConnect (/usr/src/node_modules/mysql/lib/Connection.js:461:10)
at Connection.query (/usr/src/node_modules/mysql/lib/Connection.js:206:8)
at Object.<anonymous> (/usr/src/configs/passport.js:15:12)
at Module._compile (module.js:641:30)
at Object.Module._extensions..js (module.js:652:10)
at Module.load (module.js:560:32)
at tryModuleLoad (module.js:503:12)
at Function.Module._load (module.js:495:3)
at Module.require (module.js:585:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (/usr/src/app.js:47:1)
at Module._compile (module.js:641:30)
at Object.Module._extensions..js (module.js:652:10)
相应的节点代码基本上是这样的:
var mysql = require('mysql');
var dbconfig = require('./database');
var connection = mysql.createConnection(dbconfig.connection);
database.js如下所示:
module.exports = {
'connection': {
'host': '127.0.0.1',
'user': 'user',
'password': 'password'
},
'database': 'website_user',
'users_table': 'users'
};
所有这些都在我的macbook上运行。当我打开第二个终端窗口并执行:
mysql -h 127.0.0.1 -u user -p
我可以成功连接到此服务器。在那里指定的用户与在节点应用程序中传递给我的连接建立的用户相同。我已经搞砸了大概4个小时了,不知道我做错了什么。我要做些什么才能让它工作?
让我知道如果有什么我需要提供,以帮助我的问题。谢谢!
1条答案
按热度按时间nmpmafwu1#
您正在尝试连接到
127.0.0.1:3306
从节点容器-但这是节点容器本身。如果您的数据库服务被命名为mysql
您应该能够使用这样的配置(假设docker-compose.yml版本2或更高版本):