我有一个大型 MySQL 数据库,我们称之为 live_db
,我想在同一台机器上复制它以提供一个可以使用的测试系统 (test_db
) ,包括表结构和数据。
我想定期用 live_db
的内容更新 test_db
;如果可能,增量。
MySQL 中是否有一些内置机制可以做到这一点?我认为主从复制不是我想要的,因为它应该可以更改 test_db
中的数据。不过,这些更改不必保留。
问候,
CGD
最佳答案
mysql
命令行客户端将接受来自标准输入的 SQL 语句流。因此,您可以将 mysqldump
的输出直接通过管道传输到命令行上的 mysql
。作为一项 cron 作业执行此操作会定期用更新的实时数据覆盖您的测试数据:
mysql --user=username --password=passwd -e 'DROP DATABASE test_db;'
mysql --user=username --password=passwd -e 'CREATE DATABASE test_db;'
mysqldump --user=username --password=passwd live_db | mysql --user=username --password=passwd test_db
请注意,由于您的数据很大,因此需要很长时间。
关于mysql - 如何在同一台服务器上复制 MySQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6652136/