我在用 MySQL数据库 连接 node.Js 的时候,发生的错误:
const mysql = require('mysql')
// 创建连接对象
const con = mysql.createConnection({
host: 'localhost',
user: 'root',
password: '123456',
database: 'myblog'
})
// 开始连接
con.connect()
// 执行 sql 语句
const sql = `update users set realname="李四2" where username="lisi";`
con.query(sql, (err, result) => {
if (err) {
console.error(err)
return
}
console.log(result)
})
// 关闭连接
con.end()
报的大致的错误:
r.js:80
throw err; // Rethrow non-MySQL errors
^
Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client
at Handshake.Sequence._packetToError (C:\Users\mysql-
解决方案:
- 如果你有 MYSQL Workbench 的话, 可以直接在里面使用 如下的命令: (注意你的表操作行为)
1.ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourRootPassword';
-- or
CREATE USER 'foo'@'%' IDENTIFIED WITH mysql_native_password BY 'bar';
-- then
FLUSH PRIVILEGES;
2.你可以打开 mysql 自带的命令行工具 或者 命令行:
$ mysql -u root -p
Enter password: (enter your root password)
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_new_password';
mysql> FLUSH PRIVILEGES;
mysql> quit
到这里你可以重新启动的服务,你就会看你的数据库正在连接成功。
本文详细介绍了在使用Node.js连接MySQL数据库时遇到的ER_NOT_SUPPORTED_AUTH_MODE错误,并提供了有效的解决方案,包括更新用户身份验证方式和刷新权限。
972

被折叠的 条评论
为什么被折叠?



