Solution to the failure of docker to connect to mysql: 1. Check the running container through the "docker ps" command; 2. Run "docker exec -it b30062adc08c /bin/bash" to enter the mysql container; 3. Enter " mysql -u root -p" command; 4. Restart mysql, and then use navicat to connect successfully.
The operating environment of this tutorial: linux7.3 system, docker version 19.03, Dell G3 computer.
What should I do if docker fails to connect to mysql?
Solution to failure in connecting to mysql in docker
Scenario: After installing the latest version of mysql in the docker container of the virtual machine, use navicat in the host to connect to the virtual machine. Mysql displays the following error:
2059: Authentication plugin 'caching_sha2_password' cannot be loaded:
Solution:
1. First, use the docker ps command to check the running container and make sure that the mysql we want to connect to has been started. If it has not started, use the docker start command to start it (see the result in the picture below) Indicates that a mysql has been started)
##2. Then run docker exec -it b30062adc08c /bin/bash to enter the mysql container3. Then enter the mysql -u root -p command, then enter your own password, and finally enter the update password statement:
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
##4. Finally, restart mysql and use navicat to connect successfully
Supplementary knowledge: Solution to the MySQL error in local remote connection Docker (1251)The error is as follows:
Cause: mysql 8.0 uses the cache_sha2_password authentication mechanism by default; the client does not support the new encryption method
Solution: Modify the encryption method of the user (root)1. Enter the mysql container and enter
docker exec -it mysql02 bashin docker 2. Log in to mysql
mysql -u root -pEnter 123456 and press Enter as shown
3. Set user configuration items
(1) View user information
select host,user,plugin,authentication_string from mysql.user;(2) Modify the encryption methodALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; //123456 is the login password for mysql
(3) Check user information againselect host,user,plugin,authentication_string from mysql.user;
(4 ) Use Navicate and other database software to connect again, successfully
(5)
Supplement:If you want to exit normally without closing the container, You can exit the container by pressing Ctrl P QExit the container from mysql: Ctrl D, press twice
Recommended learning: "
docker video tutorialThe above is the detailed content of What should I do if docker fails to connect to mysql?. For more information, please follow other related articles on the PHP Chinese website!