MySQL 8.0でphpMyAdminにログインできない時

久々に Windows Server を触る機会があったのですが。

Linux は触り慣れているので設定にそこまで悩まないのですが、Windows Server は全く勝手が違うので四苦八苦。

なんとか設定が終わり phpmyadmin でデータベースやテーブルの作成を行おうとしたのですが、

mysqli_real_connect(): The server requested authentication method unknown to the client [caching_sha2_password]

というエラーが表示されてログインできない。

エラー表示
エラー表示

検索してみると大概のサイトが「my.ini」の中にある

default_authentication_plugin=caching_sha2_password

という行をコメント化して

default_authentication_plugin=mysql_native_password

と追記して MySQL を再起動すると直ると書いてある。

どうやら MySQL 8.0 以降の認証方式は、デフォルトが「mysql_native_password」から「caching_sha2_password」に変わったらしく、それが原因らしい。

しかし、教えの通りにやってみるがうまくいかない。

上記設定はあくまでこれから作成するユーザーに対する設定であって、既に作成済みのユーザーに対しては反映されない。

既存ユーザーの設定を変えるには、コマンドプロンプトでわざわざ MySQL にアクセスして修正する必要がある。

例えば今回のように root の設定を変えるには

use mysql;
ALTER USER ’root’@’localhost’ IDENTIFIED WITH mysql_native_password BY 'rootのパスワード';

で変更できる。

コメントを残す