TypeORMでER_NOT_SUPPORTED_AUTH_MODEに対処する
TypeORMを使ってていきなりエラーが出たので対処してみました
エラー
code: 'ER_NOT_SUPPORTED_AUTH_MODE',
errno: 1251,
sqlMessage:
'Client does not support authentication protocol requested by server; consider upgrading MySQL client',
対処方法
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;
を実行
参考
ormconfig.json
の設定を確認する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/
Author And Source
この問題について(TypeORMでER_NOT_SUPPORTED_AUTH_MODEに対処する), 我々は、より多くの情報をここで見つけました https://qiita.com/jesuissuyaa/items/fc6d1cdcc318c9669c32著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .