LoginSignup
94
57

More than 5 years have passed since last update.

Node.jsでMySQL 8.0へ接続しようとする時に発生するエラー

Last updated at Posted at 2019-03-24

事象

Node.jsでMySQL 8.0へ接続しようとする時に、以下のエラーでちょっとハマりました。
クライアントツールでは問題なくSQLを実行できるのに、Node.jsからはエラーが発生してしまいました。

ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client

環境

 OS: Windows 10 Home 64bit
 DB: MySQL Server 8.0 Community Edition
 node: v10.14.2
 npm: 6.4.1
 mysql: 2.16.0

原因・解決策

MySQL8.0でパスワードの認証形式が変更されているが、
Node.jsの「mysql」にはまだ実装されていないことが原因でした。

認証方法を「mysql_native_password」に変更することで、
この問題は解決できました。

以下のSQLを実行することで認証方法を変更することが出来ます。
ユーザー名とパスワードは各自の環境に置き換えてください。

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'

参考になったサイト
stackoverflow.com

94
57
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
94
57