98
57

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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

98
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
98
57

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?