第一种情况,mysql服务拒绝非本机的远程链接,需要开发mysql 的权限
当我们docker run 起mysql容器之后,通过远程客户端连接数据库却发现无法连接如图:
可以看到箭头部分,该库的root用户只允许当前主机连接,所以要登录到数据库中,修改root的连接方式为‘%’
解决办法:
1进入到mysql容器内部
docker exec -it mysql_slave3 bash
注:mysql_slave3为容器名称或容器id
2登录mysql
mysql -u -root -p
3登录成功后修改访问限制
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
其中123456 为你自己设定的密码
第二种,检查云服务器的mysql端口是否开放防火墙,
找到对应的端口,添加规则
docker下启动mysql
docker run \
--name mysql \
-d \
-p 3306:3306 \
--restart unless-stopped \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:5.7
-v 挂载卷
-e 设置密码
-p 设置端口