mysqldump -u root -pxxxxx --socket=mysql.sock --no-data '--log-error=instance_from_3341_20200501.0110_structure.log' --verbose --databases test
本意是想导出mysql数据库实例test的表结构,运行上面以后,出现的现象是:
1、一直停止在下面的输出页面上:
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `test` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_bin */;
USE `test`;
然后就是长时间等待,时间很长(最长的有1个小时)
2、然后,漫长等待后,进程就自动退出了,结果是什么文件都没有
3、在对应log_error文件中有下面的记录:
-- Connecting to localhost...
mysqldump: Got error: 1205: Lock wait timeout exceeded; try restarting transaction when using LOCK TABLES
4、重点是:一个test用户不行,但是另外的test1运行这个命令很正常
根据上面的错误系统,在网上查询了大量的资料,说的都是如下方面操作:
1、innodb_trx和PROCESSLIST表中存在未提交事务;
2、然后kill掉对应的线程
根据上面的提示,我查询了innodb_trx和PROCESSLIST表中关于test和test1的记录,发现
这两个实例都在这些两个表存在记录,有些进程长期存在,但是对应的sql语句是动态变化的,
INNODB_LOCKS和INNODB_LOCK_WAITS没有发现锁的记录。
所以问题就是:
1、为什么test用户不行,test1就能正常导出?
2、test用户导出表结构的问题,到底应该如何解决?
本文暂时没有评论,来添加一个吧(●'◡'●)