【ノード】Node.jsを使用してデータベースに接続すると、クライアントがサーバーから要求された認証プロトコルをサポートしていないためエラーが発生します。

Node.js を使用してデータベースに接続するときにエラーが発生する

エラー: ER_NOT_SUPPORTED_AUTH_MODE: クライアントはサーバーによって要求された認証プロトコルをサポートしていません。MySQL クライアントのアップグレードを検討してください

これは、Node が当面 MySQL バージョン 8.0 以降をサポートしていないことが原因であり、解決策は 2 つあります。

1. MySQL のバージョンを下げます。

この操作は比較的簡単で、公式 Web サイトにアクセスして再度ダウンロードするだけなので、MySQL 公式 Web サイトについてはここでは詳しく説明しません

2. CMD を使用してデータベースに接続します

ここではこの方法を中心に説明します

mysql -u root -p
Enter password: ******

アスタリスクはパスワードです。
正常にログインした後、このコマンド行を入力してください。

 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

ここの 123456 は私のパスワードです。自分のパスワードに置き換えてください。
最後に、アクセス許可を更新します。

 FLUSH PRIVILEGES;

Node.js を使用して再度接続してください。
最後にコードを示します。

//1: 导入mysql依赖包,  mysql属于第三方的模块就类似于 java.sql一样的道理
const {
    
     Console } = require("console");
var mysql=require("mysql");
// 1: 创建一个mysql的Connection对象
// 2: 配置数据连接的信息 
var connection = mysql.createConnection({
    
    
    host:"127.0.0.1",
    user:"root",
    port:3306,
    password:"123456",
    database:"testdb"
})
// 3:开辟连接
connection.connect();
// 4: 执行curd
connection.query("select * from kss_user",function(error,results,fields){
    
    
    //如果查询出出错,直接抛出
    if(error){
    
    
        throw error;
    }
    //查询成功
    console.log("results = ",results);
});
// 5: 关闭连接
connection.end();
// 最后一步:运行node db.js 查看效果

おすすめ

転載: blog.csdn.net/Daears/article/details/126947189