Я пытаюсь использовать облачный экземпляр SQL / mysql для моей учетной записи APPEngine.Приложение представляет собой приложение Python django-2.1.5 appengine.Я создал экземпляр MYSQL в облаке Google.
Я добавил следующее в свой файл app.yaml, скопированный из подробностей экземпляра SQL:
beta_settings:
cloud_sql_instances: <INSTANCE_CONNECTION_NAME>=tcp:<TCP_PORT>
Я дал права на мой проект appengine xxx-appвладелец ххх- app@appspot.gserviceaccount.com
Cloud SQL Client
прав.Я создал учетную запись пользователя БД, специфичную для приложения XYZ
, которая может подключаться ко всем хостам (* опция)
Подробности моего подключения в settings.py следующие:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'my-db',
'USER': 'appengine',
'PASSWORD': 'xxx',
'HOST': '111.111.11.11', # used actual ip
'PORT': '3306'
}
}
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'HOST': '/cloudsql/<your-project-id>:<your-cloud-sql-instance>',
'NAME': '<your-database-name>',
'USER': 'root',
}
}
- Я не могу подключиться также и из локальной сети.Однако, если я наберу
Add Network
моего локального IP-адреса, а затем попытаюсь подключиться к локальным соединениям.Приложение работает нормально локально после добавления сети локального IP-адреса с использованием нотации CIDR.
Мои проблемы:
- Я не могу подключиться к Cloud SQL без добавленияAppEngine назначил IP-адрес.Это дает мне ошибку:
OperationalError: (2003, "Can't connect to MySQL server on '0.0.0.0' ([Errno 111] Connection refused)")
- Где я могу найти назначенный IP-адрес устройства.Я не против, даже если это временно.Я понимаю, что если мне нужен статический IP-адрес, мне нужно создать экземпляр виртуальной машины Compute.