Google Cloud SQL root@localhost 访问被拒绝,除非我每天都将密码重置为“”

Google Cloud SQL root@localhost access denied, unless I reset the password to "" every day

我有一个 App Engine 应用程序,它使用云 SQL 数据库来存储一些数据。我有一个 cron 作业在凌晨 1 点运行一堆数据收集代码,但失败并显示错误:

操作错误:(1045,"Access denied for user 'root'@'localhost' (using password: NO)")

如果我转到 Google 开发人员控制台并将 root@localhost 的密码设置为“”(即打开更改密码对话框,点击确定而不在密码字段中输入任何内容),作业cron 作业指向顺利完成。 SQL 访问将在当天剩余时间有效。

但是第二天的下一个 cron 作业将失败并出现同样的错误。

似乎 root@localhost 密码在夜间的某个时候被重置为某个东西。有人知道发生了什么事吗?

谢谢!

我找不到任何关于 root 用户密码重置的文档。我的猜测是 Google 有自己的 cron 作业,强制为 root 密码为空的用户重置密码,因为这是一个 主要安全漏洞 public 每个 Cloud SQL 实例的 IP 地址。

然而,这篇 'Creating Users' 文章强烈建议不要使用 root 帐户。

在不知道为什么需要使用密码为空的 root 帐户的情况下,我建议为 cron 作业明确创建一个密码足够的用户。这可以保护您的云 SQL 实例,并使 cron 作业的查询 运行 更容易监控。

Google Cloud SQL 从不这样做。你能检查一下你的 cron 作业,看看它是否真的删除了用户吗?