Влезте в MySQL конзолата с root потребител:
[email protected]:/# mysql -u root -pPASSWORD
и променете приставката за удостоверяване с паролата там:
mysql> ALTER USER root IDENTIFIED WITH mysql_native_password BY 'PASSWORD';
Query OK, 0 rows affected (0.08 sec)
Можете да прочетете повече информация за предпочитаната добавка за удостоверяване в Справочното ръководство за MySQL 8.0
Работи перфектно в докера използвана среда:
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
Така че вече можете да влезете в phpMyAdmin на http://localhost:8080 с root / PASSWORD
mysql/mysql-сървър
Ако използвате mysql/mysql-server изображение на докер
Но не забравяйте, че това е просто „бързо и мръсно“ решение в средата за разработка. Не е разумно да променяте Предпочитана приставка за удостоверяване на MySQL .
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
Актуализирано решение на 04.10.2018 г.
Променете приставката за удостоверяване по подразбиране на 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
Актуализирано решение на 30.01.2019 г.
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
Актуализирано решение на 13.09.2021
ПРОМЕНИ ПОТРЕБИТЕЛ 'root'@'localhost' ИДЕНТИФИЦИРАН С mysql_native_password ОТ 'password';
- точно с кавички *