【发布时间】:2011-10-31 02:37:07
【问题描述】:
Django 可以通过将settings.py 中的HOST 和PORT 设置为''(空字符串)来简单地连接到自己的MySQL 服务器:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
'NAME': 'dbname', # Or path to database file if using sqlite3.
'USER': 'root', # Not used with sqlite3.
'PASSWORD': 'root', # Not used with sqlite3.
'HOST': '', # Set to empty string for localhost. Not used with sqlite3.
'PORT': '', # Set to empty string for default. Not used with sqlite3.
}
}
我的问题是如何使它能够连接另一台主机上的另一个数据库?假设我的机器是192.168.1.33,另一台要连接的机器是192.168.1.34,两者都在同一个网络上。我尝试将其设置为:
'HOST': '192.168.1.34',
'PORT': '3306',
和
'HOST': '192.168.1.34',
'PORT': '',
但两者都导致了这个OperationalError:
(2003, "Can't connect to MySQL server on '192.168.1.34'(10061)")
解决方案:感谢@cdhowie
在
/etc/mysql/my.cnf中配置你想要的主机的绑定地址为您要授予访问权限的主机创建一个新用户(如果您没有)。
检查该用户的权限(如果访问被拒绝)。
【问题讨论】:
-
你检查过 192.168.1.34 上的防火墙吗? 192.168.1.34 上的 MySQL 是否绑定到 127.0.0.1?
-
@cdhowie 我不知道如何检查 MySQL 的防火墙和边界。请告诉我该怎么做。
-
MySQL 服务器运行在什么操作系统上?
-
默认情况下,基于 Debian 的发行版将 MySQL 配置为仅绑定到 localhost,这意味着其他主机无法连接到它。修复你的 MySQL 配置,它就会工作。
-
@cdhowie:这应该是一个答案
标签: mysql django database-connection