我有一个Django版本(1.10),它安装在我的MacBookPro(El Capitan OS X)上,我想把API连接到MySQL数据库,MySQL数据库位于一个远程服务器上(Ubuntu-与我的工作网络相同的网络)。
运行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。
我认为这可能是一个权限问题,但我真的不知道如何配置。我找到了一些教程,但每次都有问题。
你有什么想法吗?
非常感谢;)
看起来MySQL被配置为只在本地主机上侦听。
您可以从客户机运行telnet 172.30.10.59 3306来测试这一点。
请尝试执行描述的配置步骤here:
编辑/etc/mysql/my.cnf文件将mysql配置为侦听来自网络主机的连接,将bind address指令更改为服务器的IP地址。例如,用适当的地址替换172.30.10.59。如果没有这样的条目-请取消注释或创建新行。
然后使用以下命令重新启动mysqld:
然后使用telnet或再次运行应用程序进行测试。netstat也会有mysqld的第二个条目。
问题可能是“主机”:“172.30.10.58” 您可以将IP地址更改为主机名。
如果你正在使用docker,请转到docker
docker exec-it容器
sudo vi/etc/hostname和sudo vi/etc/hosts
希望能帮上忙!
首先,您需要通过编辑
my.cnf
文件并按如下方式注释以bind-address
开头的行来允许远程连接(您也可以按计算机ip地址更改127.0.0.1
):然后重新启动mysql服务:
按如下方式授予用户权限:
要仅在
Etat_Civil
上授予特权,可以尝试:相关问题 更多 >
编程相关推荐