我需要从我的 nodejs 应用程序连接到远程 mysql 数据库。下面是我的代码。
const mysqlssh = require('mysql-ssh');
mysqlssh.connect(
{
host: '572.168.0.68', //ssh login ip
user: 'root', // ssh username
password:'password' //ssh password
},
{
host: '572.168.0.68', //ssh login ip
user: 'dbusername',
password: 'dbpassword',
database: 'mydb'
}
)
.then(client => {
client.query('SELECT * FROM `dbtable`', function (err, results, fields) {
if (err) throw err
console.log(results);
mysqlssh.close()
})
})
.catch(err => {
console.log(err)
})
我收到上述代码的以下错误
code: 'ER_ACCESS_DENIED_ERROR',
errno: 1045,
sqlState: '28000',
sqlMessage: "Access denied for user 'dbusername'@'192.168.0.223' (using password: YES)"
const mysqlssh = require('mysql-ssh');
mysqlssh.connect(
{
host: '572.168.0.68', //ssh login ip
user: 'root', // ssh username
password:'password' //ssh password
},
{
host: '572.168.0.68', //ssh login ip
user: 'root', // ssh login username
password: 'dbpassword',
database: 'mydb'
}
)
.then(client => {
client.query('SELECT * FROM `dbtable`', function (err, results, fields) {
if (err) throw err
console.log(results);
mysqlssh.close()
})
})
.catch(err => {
console.log(err)
})
我的上述设置出现以下错误。
{
code: 'ER_NOT_SUPPORTED_AUTH_MODE',
errno: 1251,
sqlState: '08004',
sqlMessage: 'Client does not support authentication protocol requested by server; consider upgrading MySQL client'
}
我可以使用代码中给出的相同凭据通过 putty 登录到我的 mysql 实例。那么使用nodejs连接到远程mysql数据库的正确方法是什么?