如何在CloudSQL中保留MySQL配置变量?

时间:2014-04-06 13:28:01

标签: mysql google-cloud-sql

我似乎无法找到有关如何在Google CloudSQL中设置和保存MySQL配置变量的任何说明或示例。

我遇到的具体问题是默认情况下交互式会话会持续8个小时,如果我从交互式会话断开连接,线程将保持打开状态,然后更新事务阻塞,直到我终止该线程。

solution I found is this one

set global interactive_timeout=300;

五分钟后终止互动会话。

但是这个解决方案不起作用,因为我收到了错误:

  

错误1227(42000):拒绝访问;您需要(至少一个)此操作的SUPER权限

添加超级权限失败的方式如下:

mysql> GRANT SUPER ON *.* TO 'root'@'%' IDENTIFIED BY '<pwd>';
ERROR 1045 (28000): Access denied for user 'root'@'%' (using password: YES)

因此,似乎Cloud SQL实例的root用户没有足够的权限来设置全局变量。

另外,我无法弄清楚如何保持该设置,以便在重新启动服务器时它将保留在原位。

我看过使用:

gcloud sql instances patch

但它似乎无法修补这些设置。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:3)

您现在可以在实例上设置有限数量的标记,请参阅this Google doc

不幸的是,这不包括 interactive_timeout 标志。


原始答案

无法使用云控制台或gcloud实用程序在Cloud SQL上设置全局变量。

Cloud SQL不支持授予 SUPER 权限see the bottom of this page

然而,在这个类似的问题Google Cloud SQL max-allowed-packet中,Google员工回答说您可以通过cloud-sql@google.com向他们发送电子邮件,其中包含项目和实例名称,他们可以为您配置这些设置,因此他们可能会能够为你设置interactive_timeout。