提问者:小点点

无法连接MySQL数据库从Node. js忘记密码机制在博览会App MacOS


我正在使用mysql数据库在MacOS Mojave 10.14.6中构建一个博览会应用程序。我想创建忘记密码的页面,需要向用户发送电子邮件通知以重置password.So我正在编写一个Node. js程序,该程序将连接到Mysql。但我出错了。

下面是Node. js数据库程序:

数据库. js:

var mysql=require('mysql2');
var connection=mysql.createConnection({
host:'localhost',
user:'root',
password:'',
database:'*******'
});

connection.connect((err) => {

if(!err)
    console.log('Database is connected!');
else
    console.log('Database not connected! : '+ JSON.stringify(err, undefined,2));
});
module.exports = connection;

运行上述程序后,我收到以下错误:

Database not connected! : {
"code": "ER_ACCESS_DENIED_ERROR",
"errno": 1045,
"sqlState": "28000",
"sqlMessage": "Access denied for user 'root'@'localhost' (using password: NO)"
}

我尝试使用以下命令在Mysql Workbench中更改密码:

通过'Test123'更改用户'root'@'localhost'标识为mysql_native_password;但它给出了一个错误:

ALTER和SYSTEM USER的使用不正确。

我可以使用用户名和密码从Mysql Workbench连接到数据库。有人能说我哪里出错了吗。提前感谢。


共1个答案

匿名用户

实际上,我在Google Cloud Platform中拥有具有单独主机名、用户名和密码的mysql数据库。我可以通过提供正确的凭据来连接该数据库。

下面是数据库. js代码:

var mysql=require('mysql2');
var connection=mysql.createConnection({
host:'78.89.***.**',
user:'Poornima',
password:'test123',
database:'testdb'
});

connection.connect((err) => {

if(!err)
console.log('Database is connected!');
else
console.log('Database not connected! : '+ JSON.stringify(err, 
undefined,2));
});
module.exports = connection;

输出如下:

Database is connected!