Logga in på MySQL-konsolen med root användare:
[email protected]:/# mysql -u root -pPASSWORD
och ändra Authentication Plugin med lösenordet där:
mysql> ALTER USER root IDENTIFIED WITH mysql_native_password BY 'PASSWORD';
Query OK, 0 rows affected (0.08 sec)
Du kan läsa mer information om insticksprogrammet Preferred Authentication i MySQL 8.0 Reference Manual
Det fungerar perfekt i en dockar anpassad miljö:
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
Så du kan nu logga in på phpMyAdmin på http://localhost:8080 med root / LÖSENORD
mysql/mysql-server
Om du använder mysql/mysql-server docker-bild
Men kom ihåg att det bara är en "snabb och smutsig" lösning i utvecklingsmiljön. Det är inte klokt att ändra 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
Uppdaterad lösning den 10/04/2018
Ändra MySQL-insticksprogrammet för standardautentisering genom att avkommentera default_authentication_plugin=mysql_native_password
inställning i /etc/my.cnf
användning på egen risk
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
Uppdaterad lösning den 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
Uppdaterad lösning 2021-09-13
ÄNDRA ANVÄNDARE 'root'@'localhost' IDENTIFIERAD MED mysql_native_password MED 'lösenord';
- exakt med citattecken *