Node JS 和 mysql 连接不上(客户端不支持服务端请求的认证协议,考虑升级 mysql 客户端)
Node JS and mysql not connecting (client does not support authentication protocol requested by server consider upgrading mysql client)
我正在尝试将我的 NodeJs 应用程序与 mysql 数据库连接,但由于某种原因无法连接。
我确实像这样安装了 mysql npm(在命令行中输入):
npm install mysql
安装 mysql npm 后,我创建了一个 index.js 文件,并在该文件中尝试与我的数据库建立连接。
这是我的 index.js 文件中的代码,用于与 mysql 建立连接:
const mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
port : '3306',
password : 'test12310',
database : 'fys'
});
connection.connect((err) => {
if(!err)
console.log('Database is geconnect!');
else
console.log('Database connectie niet gelukt! : '+ JSON.stringify(err, undefined,2));
});
然后我尝试 运行 代码并查看与 mysql 的连接是否有效。我在命令行中输入了这个:
node index.js
这是我在命令提示符下得到的错误信息:
error image
有谁知道如何修复此错误并与我在 nodejs 中的 mysql 数据库建立连接?
感谢任何形式的帮助
而不是
mysqlConnection.connect((err) => {
使用
connection.connect((err) => {
if(!err)
console.log('Database is connected!');
else
console.log('Database not connected! : '+ JSON.stringify(err, undefined,2));
});
[Here the is tutorials reference for the code]1
对于您的 mysql 错误:
在MYSQLWorkbench中执行以下查询:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'
完成后尝试使用节点连接。
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;
使用新的 mysql2 库而不是 mysql 以使用新的身份验证方法MySQL8.0
~ 在节点版本 13.6.0 和 MySQL 8.0.21
中测试
我在 mysql
库中遇到了同样的问题,我通过更改为 [=14= 来修复该错误] 我推荐你安装的库 mysql2
运行
npm install mysql2
然后
import mysql from "mysql2";
或
const mysql = require("mysql2")
希望这对你有用!! 祝你好运
安装 mysql2 并删除 mysql:
npm uninstall mysql
npm install mysql2
现在,在您的代码中,唯一的事情就是更改行:
const mysql = require("mysql");
适用于:
const mysql = require("mysql2");
请注意,您正在导入 mysql2 用 mysql 命名它,因此您不必更改代码中的其他行。
我正在尝试将我的 NodeJs 应用程序与 mysql 数据库连接,但由于某种原因无法连接。
我确实像这样安装了 mysql npm(在命令行中输入):
npm install mysql
安装 mysql npm 后,我创建了一个 index.js 文件,并在该文件中尝试与我的数据库建立连接。
这是我的 index.js 文件中的代码,用于与 mysql 建立连接:
const mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
port : '3306',
password : 'test12310',
database : 'fys'
});
connection.connect((err) => {
if(!err)
console.log('Database is geconnect!');
else
console.log('Database connectie niet gelukt! : '+ JSON.stringify(err, undefined,2));
});
然后我尝试 运行 代码并查看与 mysql 的连接是否有效。我在命令行中输入了这个:
node index.js
这是我在命令提示符下得到的错误信息:
error image
有谁知道如何修复此错误并与我在 nodejs 中的 mysql 数据库建立连接?
感谢任何形式的帮助
而不是
mysqlConnection.connect((err) => {
使用
connection.connect((err) => {
if(!err)
console.log('Database is connected!');
else
console.log('Database not connected! : '+ JSON.stringify(err, undefined,2));
});
[Here the is tutorials reference for the code]1
对于您的 mysql 错误:
在MYSQLWorkbench中执行以下查询:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'
完成后尝试使用节点连接。
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;
使用新的 mysql2 库而不是 mysql 以使用新的身份验证方法MySQL8.0
~ 在节点版本 13.6.0 和 MySQL 8.0.21
中测试我在 mysql
库中遇到了同样的问题,我通过更改为 [=14= 来修复该错误] 我推荐你安装的库 mysql2
运行
npm install mysql2
然后
import mysql from "mysql2";
或
const mysql = require("mysql2")
希望这对你有用!! 祝你好运
安装 mysql2 并删除 mysql:
npm uninstall mysql
npm install mysql2
现在,在您的代码中,唯一的事情就是更改行:
const mysql = require("mysql");
适用于:
const mysql = require("mysql2");
请注意,您正在导入 mysql2 用 mysql 命名它,因此您不必更改代码中的其他行。