为什么我无法连接到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
如果以前能解决这个问题,我的第一个猜测就是您已经在后台运行了持有连接的node.js脚本副本。
我认为连接被拒绝是tcp / ip错误消息,而不是来自MySQL的消息,它表明该连接未运行或正在其他端口上运行或通过套接字运行。
您可以尝试远程登录到端口3308吗?要查看服务器是否在该端口上运行?
telnet localhost 3308
您还可以尝试:
mysql -hlocalhost -uroot -pxxx