我正在尝试从我的django应用程序托管我自己的MySQL服务器切换到Google Cloud SQL . 应用程序已经使用与Galera集群(也在GCE上)相同的配置(除了MySQL SSL证书)运行了几周而没有出现以下问题 .

我在Google Cloud Compute VM上设置了我的django应用程序应用程序,并配置为指向我的Cloud SQL实例 . 我已经设置了一个负载均衡器(尽管后端只有1个VM用于本实验),https运行状况检查指向我的应用程序的登录页面(检查每5秒运行一次)

我已导出我的数据库副本并加载到Google Cloud SQL中,创建了一个可以从单个IP地址访问的用户,并且仅限于强制执行SSL连接 .

一切似乎都运行正常 - 我可以登录到应用程序并在正常参数中使用它,但是当我检查apache错误日志时,我可以看到间歇性的django失败:

[Tue Dec 01 14:33:14.015189 2015] [:error] [pid 1890:tid 139827841804032] ERROR Internal Server Error: /accounts/login/
[Tue Dec 01 14:33:14.016202 2015] [:error] [pid 1890:tid 139827841804032] Traceback (most recent call last):
[Tue Dec 01 14:33:14.016380 2015] [:error] [pid 1890:tid 139827841804032]   File "/home/myuser/.virtualenvs/myapp/lib/python3.4/site-packages/django/db/backends/base/base.py", line 130, in ensure_connection
[Tue Dec 01 14:33:14.016553 2015] [:error] [pid 1890:tid 139827841804032]     self.connect()
[Tue Dec 01 14:33:14.016697 2015] [:error] [pid 1890:tid 139827841804032]   File "/home/myuser/.virtualenvs/myapp/lib/python3.4/site-packages/django/db/backends/base/base.py", line 119, in connect
[Tue Dec 01 14:33:14.016884 2015] [:error] [pid 1890:tid 139827841804032]     self.connection = self.get_new_connection(conn_params)
[Tue Dec 01 14:33:14.017138 2015] [:error] [pid 1890:tid 139827841804032]   File "/home/myuser/.virtualenvs/myapp/lib/python3.4/site-packages/django/db/backends/mysql/base.py", line 276, in get_new_connection
[Tue Dec 01 14:33:14.017296 2015] [:error] [pid 1890:tid 139827841804032]     conn = Database.connect(**conn_params)
[Tue Dec 01 14:33:14.017445 2015] [:error] [pid 1890:tid 139827841804032]   File "/home/myuser/.virtualenvs/myapp/lib/python3.4/site-packages/opbeat/instrumentation/packages/base.py", line 131, in __call__
[Tue Dec 01 14:33:14.017604 2015] [:error] [pid 1890:tid 139827841804032]     args, kwargs)
[Tue Dec 01 14:33:14.017739 2015] [:error] [pid 1890:tid 139827841804032]   File "/home/myuser/.virtualenvs/myapp/lib/python3.4/site-packages/opbeat/instrumentation/packages/base.py", line 222, in call_if_sampling
[Tue Dec 01 14:33:14.017918 2015] [:error] [pid 1890:tid 139827841804032]     return self.call(module, method, wrapped, instance, args, kwargs)
[Tue Dec 01 14:33:14.018156 2015] [:error] [pid 1890:tid 139827841804032]   File "/home/myuser/.virtualenvs/myapp/lib/python3.4/site-packages/opbeat/instrumentation/packages/mysql.py", line 26, in call
[Tue Dec 01 14:33:14.018305 2015] [:error] [pid 1890:tid 139827841804032]     return MySQLConnectionProxy(wrapped(*args, **kwargs))
[Tue Dec 01 14:33:14.018442 2015] [:error] [pid 1890:tid 139827841804032]   File "/home/myuser/.virtualenvs/myapp/lib/python3.4/site-packages/newrelic-2.54.0.41/newrelic/hooks/database_dbapi2.py", line 102, in __call__
[Tue Dec 01 14:33:14.018593 2015] [:error] [pid 1890:tid 139827841804032]     *args, **kwargs), self._nr_dbapi2_module, (args, kwargs))
[Tue Dec 01 14:33:14.018731 2015] [:error] [pid 1890:tid 139827841804032]   File "/home/myuser/.virtualenvs/myapp/lib/python3.4/site-packages/MySQLdb/__init__.py", line 81, in Connect
[Tue Dec 01 14:33:14.018885 2015] [:error] [pid 1890:tid 139827841804032]     return Connection(*args, **kwargs)
[Tue Dec 01 14:33:14.019087 2015] [:error] [pid 1890:tid 139827841804032]   File "/home/myuser/.virtualenvs/myapp/lib/python3.4/site-packages/MySQLdb/connections.py", line 204, in __init__
[Tue Dec 01 14:33:14.019159 2015] [:error] [pid 1890:tid 139827841804032]     super(Connection, self).__init__(*args, **kwargs2)
[Tue Dec 01 14:33:14.019312 2015] [:error] [pid 1890:tid 139827841804032] _mysql_exceptions.OperationalError: (2026, 'SSL connection error: unknown error number')

我也在使用芹菜为同一个应用程序运行后台任务 . 这些任务都涉及通过django模型对记录进行背景操作 . 芹菜日志显示我在过去一小时内完成了7951个任务,57个失败了同样的2026 / SSL连接错误:未知错误 . 我意识到这是<1%的错误率,但是当我不知道它为什么会发生时我不会满足于此!

因为错误是间歇性的,我会认为它不是证书或配置的问题(否则它会一直失败?) - 对问题可能是什么的任何想法?我不想让交换机全心全意地知道使用系统的用户可能会重新引入错误 .