一尘不染

node.js mysql错误:ECONNREFUSED

mysql

为什么我无法连接到mysql服务器?

在同一台服务器上,Apache / PHP服务器正在运行,并且连接正常!

var mysql_link = {
    host : 'localhost',
    port : 3308,
    database: 'nodetest',
    user : 'root',
    password : 'xxx'
};

var connection = mysql.createConnection(mysql_link);

connection.connect(function(err){
    console.log(err);
    if(err != null){
        response.write('Error connecting to mysql:' + err+'\n');
    }
});

connection.end();

错误

{ [Error: connect ECONNREFUSED]
  code: 'ECONNREFUSED',
  errno: 'ECONNREFUSED',
  syscall: 'connect',
  fatal: true }

更新

root@dyntest-amd-6000-8gb /var/www/node/dyntest # ps ax | grep mysqld
 7928 pts/0    S+     0:00 grep mysqld
28942 ?        S      0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/var/lib/mysql --pid-file=/var/run/mysqld/mysqld.pid
29800 ?        Sl    17:31 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/var/lib/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/var/lib/mysql/mysql-error.log --open-files-limit=65535 --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/run/mysqld/mysqld.sock --port=3306

阅读 340

收藏
2020-05-17

共1个答案

一尘不染

如果以前能解决这个问题,我的第一个猜测就是您已经在后台运行了持有连接的node.js脚本副本。

我认为连接被拒绝是tcp / ip错误消息,而不是来自MySQL的消息,它表明该连接未运行或正在其他端口上运行或通过套接字运行。

您可以尝试远程登录到端口3308吗?要查看服务器是否在该端口上运行?

telnet localhost 3308

您还可以尝试:

mysql -hlocalhost -uroot -pxxx
2020-05-17