查看可以安装的mysql镜像: docker search mysql
STARS为ok的就是官网支持我们可以安装的版本
拉取最新版本的mysql镜像: docker pull mysql:latest
拉取的时候如果网络不好的话可能会报错,报错后重新拉取就好
拉取成功后查看镜像: docker images
可以看到我已经拉取了mysql最新版本的镜像了,所有我就不重新拉取了
安装mysql容器:
docker run -itd --name=my_mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123 mysql:latest
安装后可以查看我们的my_mysql容器: docker ps -a
这样外界有的就可以连接我们容器的mysql了,但是也有可以会有问题
1.用navcat连接时报2059的错误 没有权限
如果有这个错误,就需要我们登录my_mysql容器来修改权限:
登录mysql容器: docker exec -it my_mysql /bin/bash
登录mysql: mysql -uroot -p 回车后需要输入密码,就是我们上面PASSWORD后的123,但是这块的密码不会显示,输完后回车即可,登录成功就会显示如下图
之后输入以下命令:
使用mysql库: use mysql;
修改mysql的密码:alter user 'root'@'%' identified with mysql_native_password by '123456';
刷新权限: flush privileges;
查看user表中的部分字段:
select host,user,plugin,authentication_string from mysql.user;
user下root的plugin的属性为mysql_native_password即可连接
2.用navcat连接时报2003的错误 服务关闭,或请求被拦截
查看容器: docker ps -a
![]()
如果STATUS为up证明服务没有关闭,就可以是防火墙的问题
查看防火墙的状态: systemctl status firewalld
防火墙未关会导致连接报错:
关闭防火墙: systemctl stop firewalld
就可以解决这个错误了
也可以 禁用防火墙(禁止开机启动) systemctl disable firewalld