Engineerの研鑽

メインはプログラミング系ブログ(本の要約とかもします)

質問はCONTACTやコメントでお願い致します。

【解決済み】Hubotでmysqlを使用した際のエラー(ERROR Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client at Handshake.Sequence._packetToError)

f:id:yukiyukiponsu:20190507193439p:plain

 

こんばんは! ゆきぽんずです

 

現在hubotを使っていろいろ開発している最中です

 

ただでさえ難しいのに、よくわからないエラーが出たときは許せませんよね

 

そんなエラーのうちの1つ

 

ERROR Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client
at Handshake.Sequence._packetToError

 

上記のエラーについての解決方法を見つけたので紹介します

 

そもそもなぜこのエラーが起きたのか?

 

それは以下のコードが原因でした

//これらのコードがうまく動かなかった

//mysqlの使用
var mysql = require('mysql');

//DBとの接続
var con = mysql.createConnection({
  host: "localhost",
  user: "root",
  password: "password",
  database: "hubot_numberofutterances"
});

 

要はDBとの接続がうまくいっていなかったことが一番の原因です

 

このエラーを直すためには、mysqlのCommand Line Clientを立ち上げ、以下のように入力してください

(順番に入力してください)

 

mysql >  ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

 

mysql > FLUSH PRIVILEGES;

 

このように入力すると、エラーを出すことなくDBと接続できます

 

また、hubotでmysql自体の扱い方に困ったときは、こちらのリンクをご覧ください

Node.jsでMySQLを使うメモ - Qiita

 

エラーを直すのだけで2時間とか取られるので、本当にしんどいですよね

 

皆さんのエラーを直す時間を減らすために、今後も記事を書き続けます

 

今日も読んでくださりありがとうございます

 

あなたのそばにゆきぽんず