1

我有database1(~500MB),可以通过只读模式访问user1
我有空数据库database2,具有完全权限user2

现在,我想克隆database1database2.

我试过mysqldump了,但它说access denied

有更好的办法吗?谢谢。

4

1 回答 1

1

默认情况下,mysqldump 在转储它们之前尝试锁定所有表 - 以便创建一致的快照。我认为那user1没有特权这样做。

您可以使用其中一个--single-transaction--skip-lock-tables在命令行上使用。第一个选项对整个操作使用单个事务。如果所有表都是事务性的并且数据库很小,这将非常有效。如果数据库很大,这可能会对其他应用程序产生严重影响。

如果有疑问,请先尝试--skip-lock-tables。但是,如果其他应用程序在转储期间进行更改,则转储可能会不一致。

克隆数据库的完整示例:

mysqldump -h host1 -u user1 -ppass1 --single-transaction database1 |
mysql -h host2 -u user2 -ppass2 database2
于 2012-04-22T10:08:31.033 回答