首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运行LargeHadronMigrator add_column期间,Mysql出现“锁定等待超时;尝试重新启动事务”错误

运行LargeHadronMigrator add_column期间,Mysql出现“锁定等待超时;尝试重新启动事务”错误
EN

Stack Overflow用户
提问于 2014-04-08 16:34:53
回答 1查看 14.5K关注 0票数 3

我试图解决在不加锁的情况下在大型MySQL表上添加列的问题,在我的开发环境迁移中,这是可行的。但当我在生产环境中启动它时,应用程序引发了MySQL错误:

代码语言:javascript
复制
Mysql2::Error: Lock wait timeout exceeded; 
try restarting transaction: UPDATE competition_clients...

下面是我的迁移:

代码语言:javascript
复制
require 'lhm'

class AddPersonToCompetitionClients < ActiveRecord::Migration

  def up
    Lhm.change_table(:competition_clients, atomic_switch: false) do |m|
      m.add_column(:person_id, 'INT(12)')
      m.add_column(:active, 'TINYINT(1)')
      m.add_index([:person_id])
      m.add_index([:active])
    end
  end

  def down
    Lhm.change_table(:competition_clients, atomic_switch: false) do |m|
      m.remove_index([:person_id])
      m.remove_index([:active])
      m.remove_column(:person_id)
      m.remove_column(:active)
    end
  end

end

有没有人有同样的问题或者有解决方案,如何运行迁移而不会在主应用程序中引发异常?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-18 05:57:26

如果你有一个超级查询或一系列查询,我用过的一个解决方案是延长等待超时。

如果您当前无法重启服务器或MySQL,请在MySQL终端中输入以下内容:

代码语言:javascript
复制
mysql> set GLOBAL wait_timeout=28800;

当当前MySQL实例被销毁时,此设置将消失。

要永久设置wait_timeout参数,请编辑MySQL配置文件:

代码语言:javascript
复制
~$ vim /etc/my.conf

插入以下行:

代码语言:javascript
复制
wait_timeout = 28800

现在重新启动MySQL:

代码语言:javascript
复制
sudo /etc/init.d/mysql restart

或者在Redhat上:

代码语言:javascript
复制
sudo service mysqld restart

笔记

wait_timeout

在关闭非交互式连接之前,服务器等待该连接上的活动的秒数。此超时仅适用于TCP/IP和Unix套接字文件连接,而不适用于使用命名管道或共享内存进行的连接。

interactive_timeout

服务器在关闭交互式连接之前等待该连接上的活动的秒数。交互式客户端被定义为使用mysql_real_connect()的CLIENT_INTERACTIVE选项的客户端。

可以像这样设置:

代码语言:javascript
复制
interactive_timeout = 28800

my.cnf

My.cnf的可能位置:

  • /etc/my.cnf
  • /etc/mysql/my.cnf
  • $MYSQL_HOME/my.cnf
  • datadir/my.cnf
  • ~/.my.cnf

来源:http://moorberry.net/blog/mysql-lock-wait-timeout-exceeded/

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22931722

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档