GCP Cloud SQL (mySQL) - 连接到本地环境中的数据库
GCP Cloud SQL (mySQL) - connect to DB in local environment
我在连接我的 python3 - flask 应用程序(Google App Engine 上的 运行)与 mySQL 数据库实例时遇到问题。
具体来说 - 当我在 Google 云上的 shell 命令行中通过 'python main.py' 运行 开发服务器时,我无法连接。
我使用 pymysql 包并通过 create_engine 函数连接。
我已成功连接到已部署应用程序中的数据库:
create_engine('mysql+pymysql://root:<pass>@/<instance>?unix_socket=/cloudsql/<project>:<region>:<database>')
我还设法从外部环境连接,通过在 Google SQL Cloud 和 运行ning 中授权我的本地网络 IP 地址:
create_engine('mysql+pymysql://root:<pass>@<publicIP>/<database>')
在开发服务器中,我尝试使用 127.0.0.1、localhost、有和没有 :3306 端口等。但没有任何效果...
我可以通过gcloud sql connect <instance> --user=root
直接从GoogleShell连接到数据库,所以看起来云Google[=41=之间的连接是授权的] 控制台和 SQL 云。
但是我如何使用 create_engine('mysql+pymysql://...')?
然后 运行 云中的 python main.py
shell?
在此先感谢您的帮助!
干杯
J.
您可以使用 2 个解决方案来解决此问题:
- 请勿触摸您在 App Engine 上使用的 code/param
这是我的首选解决方案,因为您在本地和云端测试相同的东西。但是您需要相同的环境。首先使用 Unix 兼容环境(如果您使用 Windows,请跳过此解决方案)。
然后,您需要打开一个连接到 Cloud SQL 实例的 unix 套接字。为此,请下载 Cloud SQL proxy binary and open a tunnel following these steps。最终,运行 您的应用在另一个终端中。
- 使用自定义数据库连接字符串
在这种情况下,您将使用模式 create_engine('mysql+pymysql://root:<pass>@<publicIP>/<database>')
。但是为此,您需要授权您的 public IP 访问您的 Cloud SQL 实例。为此,获取您的 public IP(许多网站在互联网上为您提供)并将其添加到您的 Cloud SQL 实例的 authorized networks 中(在末尾添加 /32
您的 IP,因为它是必需的 IP 范围)。它应该有用!
我在连接我的 python3 - flask 应用程序(Google App Engine 上的 运行)与 mySQL 数据库实例时遇到问题。 具体来说 - 当我在 Google 云上的 shell 命令行中通过 'python main.py' 运行 开发服务器时,我无法连接。
我使用 pymysql 包并通过 create_engine 函数连接。
我已成功连接到已部署应用程序中的数据库:
create_engine('mysql+pymysql://root:<pass>@/<instance>?unix_socket=/cloudsql/<project>:<region>:<database>')
我还设法从外部环境连接,通过在 Google SQL Cloud 和 运行ning 中授权我的本地网络 IP 地址:
create_engine('mysql+pymysql://root:<pass>@<publicIP>/<database>')
在开发服务器中,我尝试使用 127.0.0.1、localhost、有和没有 :3306 端口等。但没有任何效果...
我可以通过gcloud sql connect <instance> --user=root
直接从GoogleShell连接到数据库,所以看起来云Google[=41=之间的连接是授权的] 控制台和 SQL 云。
但是我如何使用 create_engine('mysql+pymysql://...')?
然后 运行 云中的 python main.py
shell?
在此先感谢您的帮助! 干杯 J.
您可以使用 2 个解决方案来解决此问题:
- 请勿触摸您在 App Engine 上使用的 code/param
这是我的首选解决方案,因为您在本地和云端测试相同的东西。但是您需要相同的环境。首先使用 Unix 兼容环境(如果您使用 Windows,请跳过此解决方案)。
然后,您需要打开一个连接到 Cloud SQL 实例的 unix 套接字。为此,请下载 Cloud SQL proxy binary and open a tunnel following these steps。最终,运行 您的应用在另一个终端中。
- 使用自定义数据库连接字符串
在这种情况下,您将使用模式 create_engine('mysql+pymysql://root:<pass>@<publicIP>/<database>')
。但是为此,您需要授权您的 public IP 访问您的 Cloud SQL 实例。为此,获取您的 public IP(许多网站在互联网上为您提供)并将其添加到您的 Cloud SQL 实例的 authorized networks 中(在末尾添加 /32
您的 IP,因为它是必需的 IP 范围)。它应该有用!