MySQL 8.0 の最近のリリースを受けて、ユーザーは phpMyAdmin にアクセスする際に問題が発生しています。この問題は、phpMyAdmin とサーバーの間の認証方法の不一致が原因で発生します。これを解決するには、次の手順に従います。
まず、適切なコマンドを使用して、root ユーザーとして MySQL コンソールにログインします。
mysql -u root -pPASSWORD
ログインしたら、認証を変更します次のクエリを実行して、mysql_native_password へのプラグイン:
ALTER USER root IDENTIFIED WITH mysql_native_password BY 'PASSWORD';
Docker 化された環境で作業する場合は、次の使用を検討してください。コマンド:
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
mysql/mysql-server docker イメージを使用する場合、このソリューションは開発環境専用であることに注意してください。
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
認証を変更するにはプラグインを永続的にするには、/etc/my.cnf ファイル内の次の行のコメントを解除します:
default_authentication_plugin=mysql_native_password
ただし、この方法は慎重に使用してください。
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
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
示されているように引用符が含まれていることを確認してください。
以上がMySQL 8.0 での phpMyAdmin 認証の問題を修正する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。