最近發布 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中文網其他相關文章!