phpMyAdmin の MySQL 8.0 との互換性について
データベース管理の分野では、phpMyAdmin は依然として人気のツールです。ただし、MySQL が最新バージョン 8.0 に進むにつれて、ユーザーは phpMyAdmin との接続の障害に遭遇する可能性があります。
エラーが発生しました:
phpMyAdmin にアクセスしようとすると、ユーザーは多くの場合、次のような問題に直面します。次のエラー:
#2054 - The server requested authentication method unknown to the client
このエラーは、で採用されている強化されたセキュリティ対策に起因します。 MySQL 8.0 では、より強力なパスワード ハッシュ メカニズムが導入されています。
解決策:
この問題を解決するには、MySQL 内で root ユーザーに指定されている認証方法を変更する必要があります。インスタンス:
root@9532f0da1a2a:/# mysql -u root -pPASSWORD
mysql> ALTER USER root IDENTIFIED WITH mysql_native_password BY 'PASSWORD';
認証プラグインを ' に設定しますmysql_native_password」との互換性を有効にしますphpMyAdmin.
Docker 環境ソリューション:
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 image:
この docker イメージの場合、/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 stop mysql; docker start mysql docker run --name phpmyadmin -d --link mysql:db -p 8080:80 phpmyadmin/phpmyadmin:latest
default_authentication_plugin:
更新されたソリューション (2021 年 9 月 13 日):
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
注意:必ず引用符を含めてください。
以上がphpMyAdmin を MySQL 8.0 に接続する際の「クライアントが不明な認証方法」エラーを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。