我遇到的错误与此主题中的其他帖子相似。我尝试从第一代切换到第二代SQL Server(均在US-Central1上),但它仍然不起作用。
我从项目顶部的URL复制了Cloudsql_project。
我从SQL页面中的专有部分复制了Cloudsql_instance。
在我的main.py中,我正在尝试运行Google示例代码,并且它不起作用(当地确实可以):
if os.getenv('SERVER_SOFTWARE', '').startswith('Google App Engine/'):
db = MySQLdb.connect(
unix_socket='/cloudsql/{}:{}'.format(
CLOUDSQL_PROJECT,
CLOUDSQL_INSTANCE),
user=user,passwd=password)
# When running locally, you can either connect to a local running
# MySQL instance, or connect to your Cloud SQL instance over TCP.
else:
db = MySQLdb.connect(host=host,user=user,passwd=password)
cursor = db.cursor()
cursor.execute('SHOW VARIABLES')
for r in cursor.fetchall():
self.response.write('{}n'.format(r))
文档略有过时。您应该能够始终使用SQL属性页面中的"实例连接名称"属性来构建UNIX套接字路径;只需在"/cloudsql/"前缀之后附加该值。
对于第二代,连接格式是项目:区域:名称。在您的示例中,它映射到" hello-world-123:us-central1:sqlsomething3",而Unix插座路径为"/cloudsql/hello-world-123:us-central1:sqlsomether1:sqlsomething3"./p>