MySQL连接节点

MySQL连接节点,mysql,node.js,linux,phpmyadmin,apache2,Mysql,Node.js,Linux,Phpmyadmin,Apache2,我正在linux vps上运行我的节点应用程序,在那里我安装了apache2和phpmyadmin。我在那里的服务器上有我的mysql数据库,我可以通过mysql-uusername-ppassword命令连接到用户,但是当使用以下代码运行我的节点应用程序时: const mysql = require('mysql'); const connection = mysql.createConnection({ host : '127.0.0.1', user :

我正在linux vps上运行我的节点应用程序,在那里我安装了apache2和phpmyadmin。我在那里的服务器上有我的mysql数据库,我可以通过
mysql-uusername-ppassword
命令连接到用户,但是当使用以下代码运行我的节点应用程序时:

const mysql = require('mysql');

const connection = mysql.createConnection({
    host     : '127.0.0.1',
    user     : 'root',
    password : '*******',
    database : 'db_name',
});

connection.connect(function(e) {
    if(e) {
        console.log('Database didn\'t connect');
    } else {
        console.log('Database connected successfully');
    }
});
它说“数据库没有连接”。用户、密码和数据库字段都是正确的

当console.log(e)时,我得到:

我得到: 错误代码:“ER\u不受支持\u身份验证\u模式” 错误号码:1251 sqlMessage:'客户端不支持服务器请求的身份验证协议;考虑升级MySQL客户端“./P>”
有人知道原因吗?

您可以将连接更改为使用unix套接字,或者检查mysqld是否绑定到0.0.0.0或运行它的服务器的以太网卡的ip上。
根据您使用的mysqld版本,该选项可以是“跳过网络”或“绑定地址”。

尝试
localhost
而不是
127.0.0.1
。MySQL将
localhost
视为unix套接字,而不是tcp连接,这是默认情况下
MySQL-uUserName..
所做的。已经尝试过了,但没有成功。。不管怎样,我也试过我的公共ip,没用。如果你打印e会怎么样?也许我得到了更多信息:错误代码:“ER_不受支持\u身份验证模式”错误号:1251 sqlMessage:“客户端不支持服务器请求的身份验证协议;考虑升级MySQL客户端。