【发布时间】:2020-12-30 22:00:31
【问题描述】:
我正在尝试托管一个连接到 maria db 的 express.js 应用程序。在我的本地计算机上,我可以在本地 MariaDB 上成功执行查询。但是当我尝试在主机上做同样的事情时(使用 cPanel)它失败了这个错误。
Error: connect ECONNREFUSED 127.0.0.1:3306
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1107:14)
--------------------
at Protocol._enqueue (/home/gaziokcu/nodevenv/express/10/lib/node_modules/mysql/lib/protocol/Protocol.js:144:48)
at Protocol.handshake (/home/gaziokcu/nodevenv/express/10/lib/node_modules/mysql/lib/protocol/Protocol.js:51:23)
at Connection.connect (/home/gaziokcu/nodevenv/express/10/lib/node_modules/mysql/lib/Connection.js:116:18)
at /home/gaziokcu/express/routes/index.js:32:12
at Layer.handle [as handle_request] (/home/gaziokcu/nodevenv/express/10/lib/node_modules/express/lib/router/layer.js:95:5)
at next (/home/gaziokcu/nodevenv/express/10/lib/node_modules/express/lib/router/route.js:137:13)
at Route.dispatch (/home/gaziokcu/nodevenv/express/10/lib/node_modules/express/lib/router/route.js:112:3)
at Layer.handle [as handle_request] (/home/gaziokcu/nodevenv/express/10/lib/node_modules/express/lib/router/layer.js:95:5)
at /home/gaziokcu/nodevenv/express/10/lib/node_modules/express/lib/router/index.js:281:22
at Function.process_params (/home/gaziokcu/nodevenv/express/10/lib/node_modules/express/lib/router/index.js:335:12)
/home/gaziokcu/express/routes/index.js:33
if (err) throw err;
我用于连接的代码:
const mysql = require('mysql');
var connection = mysql.createConnection({
host: 'localhost',
user:'user',
password: '<password>',
database:'<database>',
});
即使将“localhost”或“127.0.0.1”写入主机,连接器也会尝试与“127.0.0.1”连接。我的数据库管理员说由于网络配置,我必须使用“localhost”关键字连接。
我该如何解决这个问题?
编辑:
我可以使用 localhost 和 3306 设置通过 PHP 连接到数据库。
【问题讨论】:
-
您需要获取数据库连接的 IP。本地主机不是正确的。
-
@Talg123 但我可以使用 localhost 在本地 PC 上连接。
标签: mysql node.js express mariadb cpanel