问题描述
mysql报错:
ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0
redis报错:(总之就是本地连不上docker中的redis)
通过本地Windows下telnet连服务器端口,会直接跳到没有输入telnet的画面,本地Windows能够ssh到服务器,说明服务器tcp应该是没有问题的,docker内部连mysql和redis也没有问题,师弟把对应端口开了也想不出有什么问题,在网上搜索+自己操作了一下,通了,记录一下~
操作
1. 防火墙设置
确保docker中的防火墙已经对docker内的3306和6379端口放行。
#查看6379/tcp端口是否已开
firewall-cmd --zone=public --query-port=6379/tcp
#查看系统所有开放的端口
firewall-cmd --zone=public --list-ports
没放行则放行。
#配置防火墙,打开8123端口
sudo firewall-cmd --zone=public --add-port=6379/tcp --permanent
#重新启动防火墙
sudo systemctl restart firewalld.service
2. 修改对应conf
redis对应的需要在conf中修改bind和protect mode,mysql需要在conf修改bind;还有增加路由等,这部分不是很确定是否需要操作,这一部分网上资料比较多不再阐述。
3. mysql修改对应的访问权限
将访问用户的访问从localhost
变为%
,这一部分网上资料比较多不再阐述。
4. 重启
重启这两个服务。
参考资料
- https://blog.csdn.net/qq_44700578/article/details/133792256
- https://next49.hatenadiary.jp/entry/20120112/p1