Google App Engine 和 Cloud SQL:在 SQL 第 2 代'reading initial communication packet'失去与 MySQL 服务器的连接



我遇到的错误与此主题中的其他帖子相似。我尝试从第一代切换到第二代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>

相关内容

  • 没有找到相关文章

最新更新