Python Can';t连接到本地运行的Flask应用程序中的Google SQL

Python Can';t连接到本地运行的Flask应用程序中的Google SQL,python,mysql,google-app-engine,flask,google-cloud-platform,Python,Mysql,Google App Engine,Flask,Google Cloud Platform,我正在用gunicorn和Flask在googleappengine Flexible中运行Python3。部署我的应用程序会导致成功的连接,但是我似乎无法在本地连接,并且考虑到推送新版本有多慢/乏味,我真的希望能够从本地版本开始工作 下面是我运行时出现的错误:gunicorn main:application Traceback (most recent call last): File "/Users/XXXX/Desktop/Flexible/pymysql/connections.py"

我正在用
gunicorn
Flask
googleappengine Flexible
中运行
Python3
。部署我的应用程序会导致成功的连接,但是我似乎无法在本地连接,并且考虑到推送新版本有多慢/乏味,我真的希望能够从本地版本开始工作

下面是我运行时出现的错误:
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.
回溯(最近一次呼叫最后一次):
文件“/Users/XXXX/Desktop/Flexible/pymysql/connections.py”,第行
571,在连接中
sock.connect(self.unix\u套接字)
FileNotFoundError:[Errno 2]没有这样的文件或目录
在处理上述异常期间,发生了另一个异常:
sqlalchemy.exc.OperationalError:(pymysql.err.OperationalError)(2003,
“无法连接到“localhost”上的MySQL服务器([Errno 2]没有此类文件
(此错误的背景信息位于:
http://sqlalche.me/e/e3q8)
[2019-02-18 09:40:41+1100][93536][INFO]工人退出(pid:93536)
[2019-02-18 09:40:41+1100][93533][INFO]正在关闭:主机
[2019-02-18 09:40:41+1100][93533][INFO]原因:工作进程无法启动。
我已经将我的Google SQL设置为拥有一个公共IP,并将其连接到我自己的IP地址,但这似乎没有改变任何事情

这是我的代码:

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

任何帮助都会很好,谢谢:)

您包含的回溯使您看起来像是在尝试连接到本地Unix套接字。只有当数据库与应用程序代码在同一台计算机上运行时,这才有效

相反,您需要通过公共IP地址连接,或者使用云SQL代理(这可能是最简单的方法)


请参阅:

因为您的数据库托管在云SQL上,所以在本地计算机上运行应用程序时,设置云SQL代理是访问它的一种简单方法

此链接为您提供有关云SQL的一些详细信息,并在开头提供有关代理的特定信息:

以下是有关本地测试的设置和安装的有用快速入门:

确保代理在本地测试的整个过程中都在运行和侦听,否则会出现“连接被拒绝”错误

希望这有帮助,让我知道,如果一切顺利


干杯

您不能通过unix套接字连接到远程主机(可能需要一些ssh魔法)。您通常需要通过主机名、端口、用户名和密码进行连接。添加连接代码可能会有所帮助。Cheers@Dustin,那么我是否应该将unix套接字的值替换为数据库的公共ip?是的,使用公共ip,或者通过云SQL代理连接。