mysqldump error 1066 Not unique table/alias

mysql | 2019-09-13 10:02:39

异常信息

mysqldump -uroot -p database > database.sql报错:


mysqldump: Got error: 1066: Not unique table/alias: ‘grc_remarks’ when using LOCK TABLES


解决方法 

添加参数–single-transaction 代替 –lock-tables:


mysqldump –single-transaction -uroot -p database > database.sql


相关参数详解

--single-transaction

通过将导出操作封装在一个事务(Repeatable Read)内来使得导出的数据是一个一致性快照。只有当表使用支持MVCC的存储引擎(目前只有InnoDB)时才可以工作;其他引擎不能保证导出是一致的。当导出开启了–single-transaction选项时,要确保导出文件有效(正确的表数据和二进制日志位置),就要保证没有其他连接会执行如下语句:ALTER TABLE, DROP TABLE, RENAME TABLE, TRUNCATE TABLE,这会导致一致性快照失效。这个选项开启后会自动关闭lock-tables。并且在mysql5.7.11之前,--default-parallelism大于1的时候和此参也互斥,必须使用--default-parallelism=0。5.7.11之后解决了--single-transaction和--default-parallelism的互斥问题。


--lock-all-tables ,-x

锁定所有库中所有的表。这是通过在整个dump的过程中持有全局读锁来实现的。会自动关闭–single-transaction 和 –lock-tables。


--lock-tables,-l

备份某个库就锁该库的所有表,用READ LOCAL来锁表。MyISAM允许并发写入,因为锁表只针对指定的数据库,不能保证物理上的一致性,不同库的表备份完成时会有不同的状态。用–skip-lock-tables来关闭。



登录后即可回复 登录 | 注册
    
关注编程学问公众号