我有一张有十万行的桌子。现在,突然我需要创建一个 varchar 列索引。另外,我需要使用该列执行一些操作。但它给出的 innodb_lock_wait_timeout 超出了错误。我用谷歌搜索并将我的 mysql 文件夹中 my.ini 文件中的 innodb_lock_wait_timeout 的值更改为 500。但它仍然给出同样的错误。我需要确定该值是否已实际更改。如何检查有效的 innodb_lock_wait_timeout 值?
问问题
20618 次
3 回答
23
我找到了答案。我需要运行一个查询:show variables like 'innodb_lock_wait_timeout';
。
于 2013-06-06T12:44:28.220 回答
11
您的命令和服务器设置之间可能存在差异:
例如:
SHOW GLOBAL VARIABLES LIKE '%INNODB_LOCK_WAIT_TIMEOUT%'; -- Default 50 seconds
SET @@SESSION.innodb_lock_wait_timeout = 30; -- innodb_lock_wait_timeout changed in your session
-- These queries will produce identical results, as they are synonymous
SHOW VARIABLES LIKE '%INNODB_LOCK_WAIT_TIMEOUT%'; -- but is now 30 seconds
SHOW SESSION VARIABLES LIKE '%INNODB_LOCK_WAIT_TIMEOUT%'; -- and still is 30 seconds
MySQL 文档中列出的任何变量都可以在您的会话中更改,可能会产生不同的结果!
像sysvar_innodb_lock_wait_timeout这样具有“全局和会话”变量范围的任何内容都可能包含不同的值。
希望这可以帮助!
于 2016-12-01T22:58:23.940 回答
0
于 2017-11-10T11:41:37.023 回答