0

我需要从我的 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数据库的正确方法是什么?

4

0 回答 0