Navicate连接docker 容器内的mysql数据库
1、拉取镜像
$docker pull mysql

2、创建并启动一个mysql容器
docker run --name mysql-test -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql
–name:给新创建的容器命名,此处命名为mysql-test
-e:配置信息,此处配置mysql的root用户的登陆密码
-p:端口映射,此处映射主机3306端口到容器pwc-mysql的3306端口
-d:成功启动容器后输出容器的完整ID.
最后一个mysql指的是mysql镜像名字
3、查看容器运行状态
$ sudo docker ps
可以看到容器的简写ID,容器的源镜像,创建时间,状态,端口映射信息,容器名字等。

4、连接测试一
1. mysql连接IP问题
首先这个IP肯定不是localhost,然后以为是mysql容器的IP
查看mysql容器的ip
docker inspect <container-ID> | grep IPAddress
结果是:192.168.48.4
但是还是连接不上


5、连接测试二
2 获取docker主机 IP
$ ifconfig | grep inet
结果是:10.2.114.3


6、连接mysql 8提示2059 - authentication plugin 'caching_sha2_password...
原因:由于myslq8不支持动态修改密码验证方式
解决方案:
1,进入mysql容器
docker exec -it mysql-test bash
2,连接mysql
mysql -uroot -p
3,修改配置
use mysql;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new password';
FLUSH PRIVILEGES;