我已成功使用 Google cloud_sql_proxy在多个 Compute Engine 实例上运行了一段时间,直到今天,一次一个实例,代理开始显示以下错误模式:
2017/05/30 13:28:07 New connection for "project-id-1234:us-central1:sql_instance"
2017/05/30 13:28:07 couldn't connect to "project-id-1234:us-central1:sql_instance": Post https://www.googleapis.com/sql/v1beta4/projects/project-id-1234/instances/sql_instance/createEphemeral?alt=json: stream error: stream ID 1; PROTOCOL_ERROR
2017/05/30 13:28:41 New connection for "project-id-1234:us-central1:sql_instance"
2017/05/30 13:28:41 Thottling refreshCfg(project-id-1234:us-central1:sql_instance): it was only called 33.490705951s ago
2017/05/30 13:28:41 couldn't connect to "project-id-1234:us-central1:sql_instance": Post https://www.googleapis.com/sql/v1beta4/projects/project-id-1234/instances/sql_instance/createEphemeral?alt=json: stream error: stream ID 1; PROTOCOL_ERROR
当尝试直接连接到 MySQL 时(使用代理)我收到错误 2013 (HY000):
ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0 "Internal error/check (Not system error)"
我尝试过的
- 重新启动 cloud_sql_proxy 产生了一个临时修复,直到最后我的两个 Compute Engine 实例都无法连接到我的 Cloud SQL 实例并且代理只显示这个结果。
- 重新启动 Cloud SQL 实例和两个 Compute Engine 实例。
- 消除代理:我将适当的网络添加到我的 SQL 实例的授权网络,并更新所有应用程序以使用公共(public) IP。这恢复了我的生产应用程序的功能,但现在我使用公共(public)连接而不是本地/代理。
一些研究
- 我遇到了 a similar issue与产生上述相同 MySQL 错误的 Google Cloud SQL 相关,但它似乎只影响连接到 Cloud SQL from external, non GCE/GKE networks .
- 今天早上,其他一些人也在 Google Cloud SQL Discuss 上报告了同样的问题。组。
最佳答案
我的团队今天开始看到同样的问题出现在 GKE 托管服务器上。与您看到的一样:服务器和数据库的重启没有任何作用。
我们尝试将我们使用的 Google Cloud Proxy 版本从 v1.05 更新到 v1.09,问题消失了(暂时)。
我知道这解释不多,但试试看是否对您有帮助。
关于google-compute-engine - Google cloud_sql_proxy 无法连接到实例,流错误,protocol_error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44269679/