如何解决从Python访问Gcloud MySQL时连接超时
我有一个python应用程序,正在尝试访问Google的云服务上的MySQL数据库。
我一直遵循这个set up guide来通过外部应用程序(Python)进行连接,并且我正在使用pymysql软件包。我正在尝试通过代理进行连接,并且已经通过gcloud auth从控制台登录对我的连接进行了身份验证。
到目前为止,我可以通过控制台访问数据库,但是我需要能够从python脚本中进行查询以将其构建出来。当我尝试按原样运行时,出现以下错误: OperationalError:(2003,“无法连接到'34 .86.47.192'上的MySQL服务器(超时)”)
这是我正在使用的功能,其中突出显示了对安全敏感的信息:
def uploadData():
# cd to the directory with the MySQL exe
os.chdir('C:\\Program Files\\MySQL\\MySQL Server 8.0\\bin')
# Invoke the proxy
subprocess.call('start cloud_sql_proxy_x64.exe -instances=trans-cosine-289719:us-east4:compuweather',shell=True)
# Create connection
# I have also tried host = '127.0.0.1' for localhost here
conn = pymysql.connect(host='34.86.47.192',user='root',password='*******',db='gribdata')
try:
c = conn.cursor()
# Use the right databse
db_query = 'use gribdata'
c.execute(db_query)
query = 'SELECT * FROM clients'
c.execute(query)
result = c.fetchall()
print(result)
except Error as e:
print(e)
finally:
conn.close()
解决方法
是的,这个文档非常有限,但是您想要做的是从它的托管IP运行它,并配置对服务器上外部IP地址的访问。因此,您要使用该IP(34.xxx.xxx.xxx),而不是环回127本地主机IP。
要使其正常工作,您想转到“连接”选项卡并在Gcloud中添加新连接。确保选中公共地址框,IP正确,并且保存完成。
一些Gcloud工程师提供了一些极好的细节here。看起来某些源文档已过时,这是现在连接的方式。
,您是否尝试过从控制台连接CloudSQL?连接后,您将在控制台中看到一条消息,显示“正在侦听127.0.0.1:3306”。您的连接命令应为
“ cloud_sql_proxy_x64.exe -instances = trans-cosine-289719:us-east4:compuweather = tcp:3306”
尝试从控制台连接云代理,并尝试与pymysql建立连接。使用“ 127.0.0.1”。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。