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中将绑定地址配置到所需的主机
>为要授予访问权限的主机创建新用户(如果没有).
>检查该用户的权限(如果访问被拒绝).