1. ホーム
  2. mysql

[解決済み] MySQL 8.0でのphpMyAdminの動作確認 [重複] [重複

2023-06-19 14:49:59

質問

アップデイト

phpMyAdminの新しいバージョンでこの問題は解決しました。phpMyAdmin 5.0.1でのテストに成功しました。


MySQL8.0サーバーとphpMyAdminをインストールしましたが、ブラウザからアクセスしようとすると、以下のエラーが発生します。

#2054 - The server requested authentication method unknown to the client
mysqli_real_connect(): The server requested authentication method unknown to the client [caching_sha2_password]
mysqli_real_connect(): (HY000/2054): The server requested authentication method unknown to the client

強力なパスワードが実装されていることと、MySQL のリリースが比較的新しいことが関係しているのだろうと想像しています。

しかし、私は最も高度なドライバと接続の構成について何も知りません。

誰かが同じ問題に直面し、それを解決したことがありますか?

どのように解決するのですか?

でMySQLコンソールにログインします。 ルート ユーザーでログインしてください。

root@9532f0da1a2a:/# mysql -u root -pPASSWORD

で、そこのパスワードでAuthentication Pluginを変更します。

mysql> ALTER USER root IDENTIFIED WITH mysql_native_password BY 'PASSWORD';
Query OK, 0 rows affected (0.08 sec)

Preferred Authentication Plugin の詳細については、MySQL 8.0 リファレンスマニュアルを参照してください。

https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html#upgrade-caching-sha2-password

で完全に動作しています。 ドッカー 化された環境では完全に動作しています。

docker run --name mysql -e MYSQL_ROOT_PASSWORD=PASSWORD -p 3306:3306 -d mysql:latest

docker exec -it mysql bash

mysql -u root -pPASSWORD

ALTER USER root IDENTIFIED WITH mysql_native_password BY 'PASSWORD';

exit

exit

docker run --name phpmyadmin -d --link mysql:db -p 8080:80 phpmyadmin/phpmyadmin:latest

これで、http://localhost:8080 上の phpMyAdmin に root / PASSWORD でログインできるようになりました。


mysql/mysql-server

もし、あなたが mysql/mysql-server ドッカーイメージ

しかし、これはあくまでも開発環境における「手軽で汚い」解決策であることを忘れないでください。を変更するのは賢明ではありません。 MySQL Preferred Authentication Plugin .

docker run --name mysql -e MYSQL_ROOT_PASSWORD=PASSWORD -e MYSQL_ROOT_HOST=% -p 3306:3306 -d mysql/mysql-server:latest
docker exec -it mysql mysql -u root -pPASSWORD -e "ALTER USER root IDENTIFIED WITH mysql_native_password BY 'PASSWORD';"
docker run --name phpmyadmin -d --link mysql:db -p 8080:80 phpmyadmin/phpmyadmin:latest

2018/10/04に更新したソリューション

MySQLのデフォルト認証プラグインを変更するために、コメントアウトを解除して default_authentication_plugin=mysql_native_password の設定を /etc/my.cnf

自己責任でご利用ください

docker run --name mysql -e MYSQL_ROOT_PASSWORD=PASSWORD -e MYSQL_ROOT_HOST=% -p 3306:3306 -d mysql/mysql-server:latest
docker exec -it mysql sed -i -e 's/# default-authentication-plugin=mysql_native_password/default-authentication-plugin=mysql_native_password/g' /etc/my.cnf
docker stop mysql; docker start mysql
docker run --name phpmyadmin -d --link mysql:db -p 8080:80 phpmyadmin/phpmyadmin:latest

2019/01/30にワークアラウンドを更新しました。

docker run --name mysql -e MYSQL_ROOT_PASSWORD=PASSWORD -e MYSQL_ROOT_HOST=% -p 3306:3306 -d mysql/mysql-server:latest
docker exec -it mysql sed -i -e 's/# default-authentication-plugin=mysql_native_password/default-authentication-plugin=mysql_native_password/g' /etc/my.cnf
docker exec -it mysql mysql -u root -pPASSWORD -e "ALTER USER root IDENTIFIED WITH mysql_native_password BY 'PASSWORD';"
docker stop mysql; docker start mysql
docker run --name phpmyadmin -d --link mysql:db -p 8080:80 phpmyadmin/phpmyadmin:latest

デフォルトの認証プラグイン

2021年9月13日に解決策を更新しました。

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

  • 正確に引用符で囲んでください *。