关于docker中连接mysql的问题

启动mysql

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

使用navicat连接mysql出现错误

1.centos中 没有开放端口, centos7默认使用firewalld

开放端口:

// --permanent 永久生效,没有此参数重启后失效
firewall-cmd --zone=public --add-port=3306/tcp --permanent

firewall-cmd --zone=public --add-port=1000-2000/tcp --permanent

1000-2000是区间开放,在此中间的端口全部开放

重新启动:firewall-cmd --reload

查看是否开放:

firewall-cmd --zone=public --query-port=3306/tcp

删除开放端口:

firewall-cmd --zone=public --remove-port=80/tcp --permanent

2.因为会出现不支持服务器连接认证协议:因为服务器协议改变了,远程连接的协议还是以前的协议,需要做更改

 

(1)进入镜像中的mysql(ti 后面的字符串是mysql镜像ID)

docker exec -ti 2cbb0f246353 /bin/bash
(2)登录mysql

mysql -u root -p
(3)修改root 可以通过任何客户端连接

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容