当我尝试通过导入sql为项目创建各种表时,MySQL返回此错误:

#1005 - Can't create table 'mybase.mytable' (errno: 147)


在Google中查看14​​7,发现:


  MySQL错误代码147:锁表已满;使用更大的锁表重新启动程序


但是,我不知道该怎么做。我应该修改什么? (有很多锁变量)。

这是我所有“锁定”变量的结果:

innodb_autoinc_lock_mode          1
innodb_lock_wait_timeout          50
innodb_locks_unsafe_for_binlog    OFF
innodb_table_locks                ON
key_cache_block_size              1024
locked_in_memory                  OFF
max_write_lock_count              18446744073709551615
query_alloc_block_size            8192
query_cache_wlock_invalidate      OFF
range_alloc_block_size            4096
skip_external_locking             ON
table_lock_wait_timeout           50
transaction_alloc_block_size      8192

最佳答案

我终于找到了解决方法,在创建表之前将innodb_table_locks关闭,然后重新启用它。

SET innodb_table_locks = 0;

// Create tables

SET innodb_table_locks = 1;

08-28 21:28