在我们的一个实例中,我们遇到了这种错误:
2017-01-11T11:12:48.513497Z 0 [Note] InnoDB: page_cleaner: 1000ms intended loop took 5745ms. The settings might not be optimal. (flushed=614 and evicted=0, during the time.)
每次在日志中弹出错误时,错误都会开始大量相同的错误,并且由于偶然的其他事件导致实例长时间没有响应。
现在,社群支持委员会提出的建议之一就是将innodb_lru_scan_depth
的设置从默认的1024更改为256.
我检查了mysql实例标志但看不到它所以我尝试直接访问该实例并运行它:
SET GLOBAL innodb_lru_scan_depth=256;
不幸的是,如果没有SUPER
权限,我们就无法更改这些设置。
ERROR 1227 (42000): Access denied; you need (at least one of) the SUPER privilege(s) for this operation
那我该怎么改变那个值呢?还有其他我不知道的方式吗?
此外,我知道更改该设置并不是真正的"解决方案"因为这意味着我们运行的查询对于硬件来说太重了。原因是这些查询每月运行一次,并且仅为此升级实例的硬件并不值得。
答案 0 :(得分:0)
必须在以下超级特权下完成:
SET GLOBAL innodb_lru_scan_depth=256;
基本上,必须在服务器未处于活动模式时完成。
答案 1 :(得分:0)
基本上,我们无法设置innodb_lru_scan_depth
之类的全局变量
CloudSQL不接受,因为您的root
帐户不是真正的根。
我们仅对基于https://cloud.google.com/sql/docs/mysql/flags的变量(标志)列表具有权限
答案 2 :(得分:0)