python - Django 无法连接到 MySQL 服务器

标签 python mysql django

我有一个安装在我的 MacBookPro (El Capitan OS X) 上的 Django 版本 (1.10),我想将 API 连接到位于远程服务器(Ubuntu - 与我的工作相同的网络)上的 MySQL 数据库网络)。

我在运行 Django 服务器时遇到此错误:

django.db.utils.OperationalError: (2003, "Can't connect to MySQL server on '172.30.10.58' (61)")

这是我项目中的 settings.py 文件:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'Etat_Civil',
        'USER': 'root',
        'PASSWORD': 'password',
        'HOST': '172.30.10.58',
        'PORT': '3306',
    }
}

在我的 Mac 上我安装了 mysqlclient/mysql connector/python

我不使用虚拟环境,因为我的笔记本电脑上只有一个项目。所以没有必要孤立 Python。

我认为这可能是权限问题,但我真的不知道如何配置它。我找到了一些教程,但每次都遇到问题。

你有什么想法吗?

非常感谢;)

最佳答案

首先,您需要通过编辑 my.cnf 文件并注释以 bind-address 开头的行来允许远程连接,如下所示(您也可以只更改 127.0.0.1通过你的机器ip地址):

#bind-address                   = 127.0.0.1

然后重启mysql服务:

sudo service mysql restart

按如下方式向您的用户授予权限:

mysql> CREATE USER 'root'@'172.30.10.%' IDENTIFIED BY 'password';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'172.30.10.%'

要仅在 Etat_Civil 上授予权限,您可以尝试:

mysql> GRANT ALL PRIVILEGES ON Etat_Civil.* TO 'root'@'172.30.10.%'

关于python - Django 无法连接到 MySQL 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40759565/

相关文章:

python - ModelForm 保存带有空字段的模型数据

python - TypeError: 'list' 不支持缓冲区接口(interface)

python - 如何更改 Sublime text 3 中的默认 Python 解释器

python - Django:如何获取原始 SQL "COUNT(*)"查询的结果?

php - 如何从另一个表中获取串联数组项的值?

php - date_add 或 date_sub 速度差异?

android - GCM 是如何工作的? (适用于 Android 的谷歌云消息传递)

python - 在python中从数组中查找最佳元素

python - 如何使用where子句在MySQL中插入多行

mysql - 如何用 'table a' .'column b' 替换 'table b' .'column b' 如果 'table a' .'column a' 匹配 'table b' .'column a'