docker安装mysql后Navicat链接不上的问题

一、docker拉取镜像

docker pull mysql  (默认拉取最新版本的)

二、运行mysql

docker run -p 3308:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql

容器名:mysql   密码:123456

三、查看是否运行

docker ps -a

四、查看启动日志

docker logs mysql

mysql就是刚刚启动的容器名,确认mysql启动是正常的

五、错误

当我用Navicat进行链接的时候,发现下图错误

我们需要下面的处理方式

1、进入mysql客户端

docker exec -it c6c8e8e7940f /bin/bash

其中c6c8e8e7940f是我的mysql的容器名

----等价命令  docker exec -it mysql /bin/bash

mysql -u root -p123456

123456就是mysql的登录密码,在docker run的时候设置的

2、查看用户信息

select host,user,plugin,authentication_string from mysql.user;

docker安装mysql后Navicat链接不上的问题_第1张图片

 3、重新设置密码

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'newpassword'

newpassword就是新的密码

我把密码设置成了‘mysql’

4、使用Navicat重新连接

docker安装mysql后Navicat链接不上的问题_第2张图片 

附:也能是防火墙的问题

sudo firewall-cmd --add-port=3306/tcp  (放开3306的端口)

或者

 sudo systemctl stop firewalld (关闭防火墙)

你可能感兴趣的:(docker,数据库)