10

我有一张有十万行的桌子。现在,突然我需要创建一个 varchar 列索引。另外,我需要使用该列执行一些操作。但它给出的 innodb_lock_wait_timeout 超出了错误。我用谷歌搜索并将我的 mysql 文件夹中 my.ini 文件中的 innodb_lock_wait_timeout 的值更改为 500。但它仍然给出同样的错误。我需要确定该值是否已实际更改。如何检查有效的 innodb_lock_wait_timeout 值?

4

3 回答 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

innodb_lock_wait_timeout的最大值为1073741824

看看这个截图

访问 MySql 网站以供参考。

于 2017-11-10T11:41:37.023 回答