📌  相关文章
📜  django.db.utils.operationalerror:(2003,“可以 (1)

📅  最后修改于: 2023-12-03 15:00:27.772000             🧑  作者: Mango

Django数据库连接错误

当您在Django应用程序中使用数据库时,可能会遇到数据库连接错误。其中一个常见的错误是'django.db.utils.operationalerror:(2003,“可以't connect to MySQL server on '127.0.0.1' (111)”)'。这个错误意味着Django无法连接到MySQL服务器。

造成这个错误的原因有很多,可能是MySQL服务器没有运行或正在监听不同的端口、端口防火墙被阻止或用户权限不足等。

以下是一些常见的解决方法:

  1. 确保MySQL服务器正在运行并监听正确的端口

您可以使用以下命令检查MySQL服务器是否正在运行:

$ sudo systemctl status mysql

如果MySQL服务器没有运行,您可以使用以下命令启动它:

$ sudo systemctl start mysql

如果MySQL服务器正在运行,请确保它正在监听正确的端口。您可以使用以下命令检查MySQL服务器正在监听哪个端口:

$ sudo netstat -tuln | grep 3306

如果MySQL服务器正在监听错误的端口,您可以使用以下命令将其更改为正确的端口(例如,如果您想将其更改为端口3308):

$ sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

在该文件中,找到以下行:

bind-address = 127.0.0.1

将其更改为:

bind-address = 0.0.0.0

保存文件并重新启动MySQL服务器。

  1. 允许防火墙通过MySQL端口

您的服务器可能有配置防火墙,阻止对MySQL服务器的访问。您可以使用以下命令允许防火墙通过MySQL端口(默认为3306):

$ sudo ufw allow 3306/tcp

重新启动您的应用程序并尝试重新连接到数据库。

  1. 检查授权的MySQL用户

如果Django应用程序使用的MySQL用户没有足够的权限,则可能会出现此错误。您可以使用以下命令检查用户的权限:

$ sudo mysql -u root -p
mysql> use mysql;
mysql> select User, Host, db from mysql.db;

确保使用的MySQL用户具有必要的权限,并尝试重新连接到数据库。

以上是解决'django.db.utils.operationalerror:(2003,“可以't connect to MySQL server on '127.0.0.1' (111)”'错误的一些常见方法。如果这些方法都没有解决这个问题,请检查MySQL服务器的错误日志,以获得更多有关问题的信息。