проблема с подключением облака к базе данных postgresql 11 - PullRequest
0 голосов
/ 24 октября 2019

Я пытаюсь подключить мой контейнер Cloud Run к моей базе данных PostgreSQL 11, используя эту строку подключения

postgresql+psycopg2://username:password@/db?host=/cloudsql/project-name:region:dbinstance

, когда я пытаюсь запустить свой контейнер, он выдаст эту ошибку

2019-10-24 13:30:53.910 CEST sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) could not connect to server: Connection refused

2019-10-24 13:30:53.910 CEST Is the server running locally and accepting

2019-10-24 13:30:53.910 CEST connections on Unix domain socket "/cloudsql/project-name:region:dbinstance/.s.PGSQL.5432"?

2019-10-24 13:30:53.910 CEST(Background on this error at: http://sqlalche.me/e/e3q8)

Я также пытался использовать эту строку подключения

postgresql+psycopg2://username:password@/db?unix_socket=/cloudsql/project-name:region:dbinstance

, которая вернула это сообщение об ошибке

2019-10-24 11:11:43.733 CESTsqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) invalid dsn: invalid connection option "unix_socket"

2019-10-24 11:11:43.733 CEST(Background on this error at: http://sqlalche.me/e/f405)

2019-10-24 11:11:44.469 CESTContainer called exit(1).

1 Ответ

0 голосов
/ 24 октября 2019

Для подключения к экземпляру Cloud SQL из Cloud Run у Google есть это руководство. Вы можете найти фрагмент Python там.

Как указано в документации, стандарт PostgreSQL требует, чтобы сокет Unix имел суффикс .s.PGSQL.5432 в пути к сокету. Некоторые библиотеки применяют этот суффикс автоматически, но другие требуют, чтобы вы указали путь к сокету следующим образом:

...