Node.jsでMySQLへの接続がうまくいかないことについて。
js
1const express = require('express'); 2const mysql = require('mysql'); 3 4const app = express(); 5 6const connection = mysql.createConnection({ 7 host: 'localhost', 8 user: 'root', 9 password: 'パスワード', 10 database: 'test_app' 11}); 12 13connection.connect((err) => { 14 if (err) { 15 console.log('error connecting: ' + err.stack); 16 return; 17 } 18 console.log('success'); 19}); 20 21app.get('/', (req, res) => { 22 connection.query( 23 'SELECT * FROM users', 24 (error, results) => { 25 console.log(results); 26 res.render('hello.ejs'); 27 } 28 ); 29}); 30 31app.listen(3000); 32
上記のような形でMySQLへ接続を試みたところ、次のようなエラーが出ました。
ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client
色々と調べていたところ、MySQL8.0から採用された認証プラグインが原因であるとのこと。
認証プラグインを以下のコマンドで、「caching_sha2_password」から「mysql_native_password」に変更すればいいと、他のサイトでは書いてあったのですが、この方法で不都合などはないのでしょうか?
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
MySQL2を使った方がいいという情報もあったので、どの解決方法がいいのか、ご意見を聞かせていただけると幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/11/10 14:55