GAE Python3 标准环境 + Cloud SQL MySQL 2nd Gen 使用 Cloud SQL Proxy 吗?
Does GAE Python3 Standard Environment + Cloud SQL MySQL 2nd Gen use Cloud SQL Proxy?
我在 Cloud SQL 的日志中报告了一些错误,例如以下连接到 Cloud SQL MySQL 的 GAE Standard Python3 应用程序中的错误世代:
textPayload: "2019-02-19 485 [Note] Aborted connection 485 to db: 'my_database' user: 'root' host: 'cloudsqlproxy~74.125.xx.xxx' (Got an error reading communication packets)"
GAE Python3 甚至在幕后使用云 SQL 代理吗?我怎样才能避免这些问题?
是的,GAE Standard 使用云 SQL 代理与云 SQL 实例 通信(如果您使用实例名称访问,但如果通过访问则不需要public IP)。此外,错误消息可能不是问题。
"Aborted connection xxx to db: 'db_name' user: 'sql_user' host:
'ip_address'"
现有连接终止时触发此消息
不正确,这可能看起来是错误的,但实际上是完全正常的。中止连接的发生是因为连接关闭不干净(例如当实例缩小并终止时)或服务器和客户端之间的网络问题,而不是因为服务器。
如果长期空闲连接在您的用例中很常见,那么从 GCE 或 GAE 连接时,这可能会影响您的 SQL 实例。整改:
设置 wait_timeout
标志值低于 600 秒:
https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_wait_timeout
实施应用程序级保活:许多连接池框架为此提供了一个简单的配置选项。否则,通过定期发送一个简单的 SQL 语句(例如 "SELECT 1;",至少每 5 分钟一次,在所有打开的连接上生成 activity。
我在 Cloud SQL 的日志中报告了一些错误,例如以下连接到 Cloud SQL MySQL 的 GAE Standard Python3 应用程序中的错误世代:
textPayload: "2019-02-19 485 [Note] Aborted connection 485 to db: 'my_database' user: 'root' host: 'cloudsqlproxy~74.125.xx.xxx' (Got an error reading communication packets)"
GAE Python3 甚至在幕后使用云 SQL 代理吗?我怎样才能避免这些问题?
是的,GAE Standard 使用云 SQL 代理与云 SQL 实例 通信(如果您使用实例名称访问,但如果通过访问则不需要public IP)。此外,错误消息可能不是问题。
"Aborted connection xxx to db: 'db_name' user: 'sql_user' host: 'ip_address'"
现有连接终止时触发此消息 不正确,这可能看起来是错误的,但实际上是完全正常的。中止连接的发生是因为连接关闭不干净(例如当实例缩小并终止时)或服务器和客户端之间的网络问题,而不是因为服务器。
如果长期空闲连接在您的用例中很常见,那么从 GCE 或 GAE 连接时,这可能会影响您的 SQL 实例。整改:
设置
wait_timeout
标志值低于 600 秒: https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_wait_timeout实施应用程序级保活:许多连接池框架为此提供了一个简单的配置选项。否则,通过定期发送一个简单的 SQL 语句(例如 "SELECT 1;",至少每 5 分钟一次,在所有打开的连接上生成 activity。