当使用App Engine连接Cloud SQL时,有时会遇到“连接被拒绝”的错误。这可能是由于以下原因导致的:
没有正确配置Cloud SQL实例的网络连接。您需要在Cloud SQL实例的授权网络中添加App Engine的服务帐户。可以按照以下步骤进行操作:
没有正确设置App Engine的连接配置。您需要确保在App Engine的配置文件(app.yaml)中正确设置了数据库连接参数。以下是一个示例:
runtime: python3
env_variables:
CLOUD_SQL_CONNECTION_NAME:
CLOUD_SQL_USER:
CLOUD_SQL_PASSWORD:
CLOUD_SQL_DATABASE:
是您的Cloud SQL实例的连接名称。
和
是您的Cloud SQL实例的用户名和密码。
是您要连接的数据库名称。在您的应用程序代码中,您可以使用这些环境变量来连接Cloud SQL实例。
没有正确处理数据库连接错误。当连接被拒绝时,您的应用程序应该能够处理这种情况,并提供相应的错误信息。以下是一个示例:
import pymysql
from google.auth import exceptions
try:
# 创建数据库连接
connection = pymysql.connect(
unix_socket='/cloudsql/',
user='',
password='',
db='',
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor
)
# 执行数据库操作
# ...
# 关闭数据库连接
connection.close()
except (pymysql.err.OperationalError, exceptions.DefaultCredentialsError) as e:
# 处理数据库连接错误
print(f"数据库连接错误: {e}")
在这个示例中,
是您的Cloud SQL实例的连接名称,
和
是您的Cloud SQL实例的用户名和密码,
是您要连接的数据库名称。
在发生连接错误时,应用程序会打印出相应的错误信息,并可以采取适当的措施。
请注意,上述示例是使用Python和pymysql库的示例,您可以根据您使用的编程语言和数据库驱动程序进行相应的更改。