Django может просто подключиться к своему собственному серверу MySQL, установив HOST
и PORT
в settings.py
как '' (пустая строка):
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)")
РЕШЕНИЕ: credit @ cdhowie
Конфигурация привязки адреса к нужному хосту в /etc/mysql/my.cnf
Создайте нового пользователя для хоста, которому вы хотите предоставить доступ (если у вас его нет).
Проверка привилегий для этого пользователя (если доступ запрещен).