Невозможно подключить Django Rest Framework приложение с облаком GCP SQL - PullRequest
0 голосов
/ 11 марта 2020

Я создал could SQL instance на GCP для MySql 5.7. Я пытаюсь подключить его к приложению Django Framework. Я также использую Docker для контейнера Django приложения. Я запускаю приложение Django на localhost, но для MySql я хочу использовать GCP cloud Sql.

Я получил экземпляр public IP address облака Sql, как только он был запущен и работает. Затем я создал базу данных eitan_database с пользователем jeet и паролем root.

В файле settings.py проекта Django Я обновил настройки базы данных следующим образом -

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'eitan_database',
        'USER': 'jeet',
        'PASSWORD': 'root',
        'HOST': '35.239.xxx.x',
        'PORT': 3306,
    }
}

Я использовал public IP для HOST и для PORT Mysql по умолчанию 3306.

Я не понимаю, что не так с конфигурацией базы данных, но когда я запускаю сервер, я получаю следующую ошибку.

Traceback (most recent call last):
eitan-application_1  |   File "/usr/local/lib/python3.7/site-packages/django/db/backends/base/base.py", line 220, in ensure_connection
eitan-application_1  |     self.connect()
eitan-application_1  |   File "/usr/local/lib/python3.7/site-packages/django/utils/asyncio.py", line 24, in inner
eitan-application_1  |     return func(*args, **kwargs)
eitan-application_1  |   File "/usr/local/lib/python3.7/site-packages/django/db/backends/base/base.py", line 197, in connect
eitan-application_1  |     self.connection = self.get_new_connection(conn_params)
eitan-application_1  |   File "/usr/local/lib/python3.7/site-packages/django/utils/asyncio.py", line 24, in inner
eitan-application_1  |     return func(*args, **kwargs)
eitan-application_1  |   File "/usr/local/lib/python3.7/site-packages/django/db/backends/mysql/base.py", line 233, in get_new_connection
eitan-application_1  |     return Database.connect(**conn_params)
eitan-application_1  |   File "/usr/local/lib/python3.7/site-packages/MySQLdb/__init__.py", line 84, in Connect
eitan-application_1  |     return Connection(*args, **kwargs)
eitan-application_1  |   File "/usr/local/lib/python3.7/site-packages/MySQLdb/connections.py", line 179, in __init__
eitan-application_1  |     super(Connection, self).__init__(*args, **kwargs2)
eitan-application_1  | MySQLdb._exceptions.OperationalError: (2002, "Can't connect to MySQL server on '35.239.117.1' (115)")

1 Ответ

0 голосов
/ 14 марта 2020

Я использовал Private IP из Cloud SQL, чтобы установить sh соединение с localhost, которое находится в другой сети. Для установления sh используется соединение с внешней сетью Public IP's.

Следовательно, я создал Public IP и разрешил всем сетям доступ к экземпляру Cloud SQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...