<p>我有一个python应用程序,我试图访问谷歌云服务上的MySQL数据库</p>
<p>我一直遵循这个<a href="https://cloud.google.com/sql/docs/mysql/connect-external-app#python" rel="nofollow noreferrer">set up guide</a>通过外部应用程序(Python)进行连接,我正在使用pymysql包。我正在尝试通过代理进行连接,并且已经通过gcloud auth登录从控制台验证了我的连接</p>
<p>到目前为止,我可以通过控制台访问数据库,但我需要能够从python脚本中进行查询以构建它。当我尝试按原样运行时,会出现以下错误:
操作错误:(2003,“无法连接到'34.86.47.192'上的MySQL服务器(超时)”</p>
<p>以下是我正在使用的函数,其中列出了安全敏感信息:</p>
<pre><code>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()
</code></pre>
<p>您是否尝试过从控制台连接CloudSQL?连接后,控制台中会显示一条消息“Listing on 127.0.0.1:3306”。您的连接命令应为</p>
<p>“cloud_sql_proxy_x64.exe-instances=trans-cosine-289719:us-east4:compuweather=tcp:3306”</p>
<p>尝试从控制台连接云代理,并尝试创建与pymysql的连接。使用“127.0.0.1”</p>