mysql同步数据库锁表问题

在尝试通过Navicat同步MySQL数据库时遇到问题,包括部分表未创建及数据库锁定。问题源于导入过程中遇到timestamp字段格式错误且未设置错误中断。解决锁表问题的方法是进入MySQL命令行,使用`show processlist`找出锁定的进程,然后用`kill`命令终止这些进程,从而解锁数据库,恢复正常操作。
摘要由CSDN通过智能技术生成

分享mysql数据库同步遇到的问题–锁表

一.问题描述

​ 如标题,想要同步一下sit的数据库。通过navicat将原转存为.sql文件(小补充:压缩可大大减小文件大小),然后拿过来右击数据库选择“运行sql文件”。但是,由于中途导入卡顿(也有卡死的情况),强制终端了sql的运行,出现了两个问题:

  • 1.运行完sql文件发现有较多的表没有创建

  • 2.数据库无法登录,或者登录后无法查询表的数据,一直转圈圈

二.分析与解决问题

  • 1.表没有创建的原因:导入时没有选择“遇到错误中断”,导致只运行了成功的。我的数据库错误时–mysql版本的问题,导致插入时,timestamp格式的字段值为空还是空字符串时,导入错误。然后有没有设置中断。最后缺失大量数据。当然,由于一些外键,或者先有数据之后加入的约束可能也会导致错误。
  • 2.表和库都无法操作的原因:锁表。具体锁表原因,没有细致分析,借鉴同事的帮助解决了改锁表问题。接下来将操作予以记录。

三.锁表的解决办法(navicat,当然mysql窗口也是一样的)

  • 1.打开数据库连接,然后点击“工具”–>“命令列界面”。没错就是进入到了mysql命令窗口了。

  • 2.use对应的数据库(mysql命令)。

  • 3.执行命令:

    show processlist;
    

    结果如下:
    在这里插入图片描述

  • 4.现在问题就很明朗了,看“State”一栏,有两个地方被lock了。

  • 5.我的处理办法时:直接执行对应进程id的kill命令

    kill 13779;kill 13800;
    
  • 再次执行show processlist;,发现没有lock了,然后回到数据库发现一切正常,问题解决

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值