我有一个安装在我的 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/