[英]How to connect to MySQL server on another host?
通過將settings.py
HOST
和PORT
settings.py
為''(空字符串),Django可以簡單地連接到自己的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
中將綁定地址配置到所需的主機
為要授予訪問權限的主機創建新用戶(如果沒有)。
檢查該用戶的權限(如果訪問被拒絕)。
默認情況下,基於Debian的發行版將MySQL配置為僅綁定到localhost,這意味着其他主機無法連接到它。 修復你的MySQL配置,它會工作。
編輯/etc/mysql/my.cnf
並更改此行:
bind-address = 127.0.0.1
對此:
bind-address = 0.0.0.0
這將使MySQL暴露給所有網絡接口,因此如果此服務器暴露給不受信任的主機,請確保您已采取安全措施。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.