zoukankan      html  css  js  c++  java
  • (转)mysqldump: Got error: 1556: You can't use locks with log tables.

    mysqldump: Got error: 1556: You can't use locks with log tables.

    原文:http://blog.51cto.com/oldboy/1122867

    mysql主从同步出现错误解决一例:本文出自老男孩linux运维实战培训内部教案内容整理总结

    FAQ:问题1mysqldump: Got error: 1556: You can't use locks with log tables.

        在老男孩带学生做主从同步实践时,发现学生实践操作时遇到如下问题无法解决,于是,老男孩把解决的过程总结如下:

    [root@Oldboy ~]# mysqldump -uroot -p'oldboy' -S /data/3306/mysql.sock -A -B >a.sql

    mysqldump: Got error: 1556: You can't use locks with log tables. when using LOCK TABLES

    解决过程:

    同样的操作,其他10几个学生都是OK的,只有这个学生有问题,在询问后,并查看了相关配置过程后,联系到往期也有学生发生过类似问题,于是,发现了原因。

    [root@Oldboy ~]# which mysqldump

    /usr/bin/mysqldump

    发现原因,mysql的安装路径为/application/mysql,查看mysqldump的路径应该是/application/mysql/bin才对,但是现在的路径是rpm包安装的mysql命令路径了,至此原因找到。

    [root@oldboy ~]# tail -1 /etc/profile

    export PATH=$PATH:/application/mysql/bin

    在/etc/profile文件中,mysql的命令所在路径,该学生放到了结尾,因此,当执行mysqldump命令时,优先找到了rpm包自带的/usr/bin/mysqldump命令,从而导致了错误。

    我们把把mysql的命令路径放到PATH变量的最前面:

    [root@oldboy ~]# tail -1 /etc/profile

    export PATH=/application/mysql/bin:$PATH

    [root@Oldboy ~]# . /etc/profile

    [root@Oldboy ~]# echo $PATH

    /application/mysql/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/mysql/bin:/root/bin:/usr/local/mysql/bin:/application/mysql5.1.65/bin:/application/apache/bin

    [root@Oldboy ~]# which mysqldump

    /application/mysql/bin/mysqldump

    此时在导出数据库:

    [root@Oldboy ~]#mysqldump -uroot -p'oldboy' -S /data/3306/mysql.sock -A -B >a.sql

    可以正常导出了。

    下面该同学搜索的,其他网友的同样报错的另外一个问题的文章:

    mysqldump You can’t use locks with log tables  11-01-13 11:05:02

    http://blog.chinaunix.net/uid-21757535-id-86425.html

    分类: Mysql/postgreSQL

    最近在做数据库备份的时候,遇到这样的一个错误:

    mysqldump: Got error: 1556: You can't use locks with log tables. when using LOCK TABLES

    我是把一些mysqldump语句放在一个批量命令文件(传说中的.sh文件)中执行的,而当我把这些
    mysqldump语句分离开来一个一个执行的时候,我发现是没有任何错误的,于是在网络上找了一些资料:
    发现是mysql默认数据库里的logs表,不能被加锁(lock tables)引起的。
    于是我测试了一下,把关于mysql这个默认数据库相关的语句清空后,整个文件即可正常运行。
    还有一个解决方法:
    便是在mysql这个数据库相关的那句mysqldump加上 --lock-tables=0 这个参数,不锁表备份,也是可行的。

  • 相关阅读:
    vscode_sync
    外国it视频教学文件
    关于登录状态,后台应该另外做一个接口来决定是否登录
    判断浏览器信息
    file控件预览
    githutb账号密码
    .net core 实践笔记(三)--封装底层
    .net core 实践笔记(二)--EF连接Azure Sql
    .net core 实践笔记(一)--开篇
    SQL引用DAL
  • 原文地址:https://www.cnblogs.com/liujiacai/p/8124936.html
Copyright © 2011-2022 走看看