Не удается подключиться к Google SQL в приложении Flask, работающем локально - PullRequest
0 голосов
/ 18 февраля 2019

Я бегу Python3 в Google App Engine Flexible с gunicorn и Flask.Развертывание моего приложения приводит к успешному соединению, однако я не могу подключиться локально, и учитывая, насколько медленно / утомительно продвигать новые версии, я бы очень хотел работать с локальной версией.

Вот ошибка при запуске: gunicorn main:application

Traceback (most recent call last):
File "/Users/XXXX/Desktop/Flexible/pymysql/connections.py", line 
571, in connect
sock.connect(self.unix_socket)
FileNotFoundError: [Errno 2] No such file or directory

During handling of the above exception, another exception occurred:

<stacktrace within pymysql/connection.py>

sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (2003, 
"Can't connect to MySQL server on 'localhost' ([Errno 2] No such file 
or directory)") (Background on this error at: 
http://sqlalche.me/e/e3q8)
[2019-02-18 09:40:41 +1100] [93536] [INFO] Worker exiting (pid: 93536)
[2019-02-18 09:40:41 +1100] [93533] [INFO] Shutting down: Master
[2019-02-18 09:40:41 +1100] [93533] [INFO] Reason: Worker failed to boot.

Я настроил свой Google SQL на общедоступный IP-адрес и подключил его к своему собственному IP-адресу, нопохоже, это ничего не изменило.

Это мой код:

engine = create_engine('mysql+pymysql://<USER>:<PASSWORD>@/<DBNAME>?unix_socket=/cloudsql/<INSTANCE_NAME>')
connection = engine.connect()

Любая помощь была бы отличной, спасибо :)

Ответы [ 2 ]

0 голосов
/ 04 апреля 2019

Поскольку ваша база данных размещена в Cloud SQL, настройка прокси-сервера Cloud SQL - это простой способ получить к нему доступ при запуске приложения на локальном компьютере.

Эта ссылка содержит некоторые сведения о Cloud SQL, а вначале - конкретную информацию о прокси: https://cloud.google.com/python/getting-started/using-cloud-sql

Вот полезное краткое руководство по настройке и установке для локального тестирования:https://cloud.google.com/sql/docs/mysql/quickstart-proxy-test

Убедитесь, что прокси-сервер работает и прослушивает все время локального тестирования, в противном случае вы получите сообщение об ошибке «Отказано в соединении».

Надеюсь, это поможет, дайте мне знать, есливсе это работает!

Приветствия

0 голосов
/ 18 февраля 2019

В результате отслеживания, которое вы включили, создается впечатление, что вы пытаетесь подключиться к локальному сокету Unix.Это будет работать только в том случае, если ваша база данных работает на том же компьютере, что и код приложения.

Вместо этого вам потребуется либо подключиться через публичный IP-адрес, либо использовать Cloud SQL Proxy (что, вероятно, является самым простымметод).

См .: https://cloud.google.com/python/getting-started/using-cloud-sql

...