【问题标题】:MySQL returns "Can't create table because of lock error (errno: 147)"MySQL 返回“由于锁定错误(错误号:147)无法创建表”
【发布时间】:2012-12-20 10:28:45
【问题描述】:

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

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

在 Google 中查找 147,我发现:

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

【问题讨论】:

    标签: mysql locking innodb


    【解决方案1】:

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

    SET innodb_table_locks = 0;
    
    // Create tables
    
    SET innodb_table_locks = 1;
    

    【讨论】:

      猜你喜欢
      • 2016-02-11
      • 2020-04-10
      • 2012-09-19
      相关资源
      最近更新 更多