linux下django连接外部的wampserver的mysql数据库连接被拒绝

报错:

django.db.utils.OperationalError: (2003, "Can't connect to MySQL server on '127.0.0.1' ([Errno 111] Connection refused)")

但是我setting.py上的数据库设定没有错,在pycharm自带的数据库控制台连接wampserver的数据库没有问题,在linux下执行数据迁移就报以上错误,我猜可能是和linux本机里面安装的mysql混淆了,又把wampserver的mysql数据库端口从默认的3306改成3308,然后还是不行,实在没办法了,求大佬搭救

这个错误通常是由于防火墙或MySQL服务器配置问题引起的。以下是一些可能的解决方案:

检查MySQL服务器是否在运行,并确保它正在监听正确的端口。可以使用以下命令检查MySQL服务器的状态:

systemctl status mysql
如果MySQL服务器未运行,请使用以下命令启动它:

systemctl start mysql
检查MySQL服务器的配置文件,确保它允许来自其他主机的连接。可以在MySQL服务器配置文件中找到以下行:

bind-address = 127.0.0.1
将其更改为:

bind-address = 0.0.0.0
这将允许来自任何主机的连接。

检查防火墙设置,确保MySQL服务器的端口(默认为3306)未被阻止。您可以使用以下命令检查防火墙规则:

sudo iptables -L -n
如果MySQL服务器的端口被阻止,请使用以下命令添加防火墙规则:

sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
或者,您可以使用以下命令禁用防火墙:

sudo systemctl stop firewalld
请注意,禁用防火墙可能会导致安全漏洞,因此请谨慎使用。

如果您使用的是SELinux,请确保它不会阻止MySQL服务器的连接。可以使用以下命令检查SELinux状态:

sestatus
如果SELinux处于enforcing状态,请使用以下命令将其设置为permissive状态:

setenforce 0
或者,您可以在SELinux配置文件中设置MySQL服务器的策略,以允许外部连接。

如果以上解决方案均未能解决问题,请检查django的数据库配置是否正确,并确保您使用的是正确的数据库���擎和主机名。