LoginSignup
1
1

More than 3 years have passed since last update.

TypeORMでER_NOT_SUPPORTED_AUTH_MODEに対処する

Last updated at Posted at 2020-04-12

TypeORMを使ってていきなりエラーが出たので対処してみました

エラー

code: 'ER_NOT_SUPPORTED_AUTH_MODE',
errno: 1251,
sqlMessage:
   'Client does not support authentication protocol requested by server; consider upgrading MySQL client',

対処方法

mysqlのuserを作るときに、パスワードをmysql_native_passwordで設定する

ダメな例:

> CREATE USER 'foouser'@'localhost' IDENTIFIED BY 'foopassword';

okな例:

> CREATE USER 'foouser'@'localhost' IDENTIFIED WITH mysql_native_password BY 'foopassword';

IDENTIFIED BY ではなく IDENTIFIED WITH mysql_native_password BYと書いて「mysql_native_passwordを使うよ」と指定します

もしすでにCREATE USERしていた場合は、以下のクエリでuserの設定を変更します

> ALTER USER 'foouser'@'localhost' IDENTIFIED WITH mysql_native_password BY 'foopassword';
> FLUSH PRIVILEGES;

を実行する

解説

デフォルトのパスワード設定だとなぜかダメで、mysql_native_passwordっていうauth_pluginを使う必要があるようです

ログインは、デフォルトのパスワードを設定したユーザと同じように、

$ mysql -u foouser -p
Enter Password:

でできます

FLUSH PRIVILEGES は、mysqlのサーバを再起動せずにユーザの設定を更新できる命令
この場合は、mysql_native_passwordを追加したという更新を反映させるために実行する

エラーが直らない場合

  • ormconfig.jsonの設定を確認する
  • mysqlの走ってるPORTを確認する
  • DBが存在するか確認する i.e. SHOW DATABASES;を実行

参考

https://github.com/typeorm/typeorm/issues/2093
https://dev.mysql.com/doc/refman/8.0/en/create-user.html
https://linuxize.com/post/how-to-create-mysql-user-accounts-and-grant-privileges/

1
1
0

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
1
1