服务器docker中redis和mysql连不上解决方法

问题描述

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. 重启

重启这两个服务。

参考资料

  1. https://blog.csdn.net/qq_44700578/article/details/133792256
  2. https://next49.hatenadiary.jp/entry/20120112/p1
posted @ 2023-11-14 15:30  tudouuuuu  阅读(256)  评论(0编辑  收藏  举报