0

我最近制作了一个大型 32Gig 数据库的副本,用于我的开发环境。现在,当我尝试创建、删除、更新项目时出现此错误。

SQLSTATE[HY000]: General error: 1205 Lock wait timeout exceeded; try restarting transaction

我在想也许副本没有正确运行并且某些表被锁定?

有问题的数据库是test_dev2我的开发环境正在使用的数据库。我尝试终止该进程test_dev2,但仍然出现同样的错误。

在此处输入图像描述

我还重新启动了 MySQL 服务,但仍然出现同样的错误。

然后我增加到innodb_lock_wait_timeout120 +--------------------------+-------+ | Variable_name | Value | +--------------------------+-------+ | innodb_lock_wait_timeout | 120 | +--------------------------+-------+

这是我运行此命令时得到的结果SHOW OPEN TABLES WHERE In_use > 0; +-----------+------------------+--------+-------------+ | Database | Table | In_use | Name_locked | +-----------+------------------+--------+-------------+ | test_dev2 | core_url_rewrite | 1 | 0 | +-----------+------------------+--------+-------------+

关于如何解决此1205 Lock wait timeout exceeded错误的任何想法?

4

1 回答 1

0
  1. 询问您的系统管理员您安装此版本的服务器是否有能力处理这个大数据库。

  2. 通过删除/减少条目条目来精简数据库——删除客户条目、日志条目、报价等。

  3. 确保正确完成索引。

  4. 您的 Mysql 缓冲内存大小设置也可能导致临时表创建,这反过来会减慢执行速度,进而导致超时。
于 2017-01-11T05:20:38.370 回答