我完成了从 5.1 到 5.6 的迁移,并且(使用与以前相同的查询)mysql 立即抱怨:
一般错误:1651 查询缓存已禁用;使用 query_cache_type=1 重新启动服务器以启用它
我不想启用查询缓存(这是一个有很多文字的应用程序),我的文件 my.ini 如下所示:
# The MySQL server
[mysqld]
# ... other parameters...
query_cache_type = 0
query_cache_size = 0
此外,在连接时,我的 php 连接包装器始终执行
SET SESSION query_cache_type = OFF
我不明白的是
- 为什么参数显然不起作用
- 为什么 mysql 甚至不得不抱怨用户选择禁用的参数。
需要启发-谢谢!
我认为这
SET SESSION query_cache_type = OFF
是造成这种情况的原因。在“查询缓存配置”页面中,它指出:并且由于您在禁用缓存的情况下启动服务器,因此无论如何都不需要使用它
SET
。至于为什么会抛出错误(包括
= OFF
和= 0
),可能与 Server System Variables 页面中的这条注释有关:我的解释是该变量同时具有全局和会话范围,但前提是它在启动时未设置为关闭。