出于测试目的,我必须创建一个无法触及的生产 MySQL 数据库的副本。
这些是我要遵循的步骤:
创建一个缩小的数据库备份:
mysqldump prodDB --single-transaction --where="true limit 20" > test.sql
创建一个新的测试数据库:
testDB
在新的测试数据库中加载转储文件:
mysql testDB < test.sql
这个程序正确吗?
我能确定原始数据库不会被修改吗?
谢谢!
系统:MySQL 5.1 和 InnoDB
如果您没有外键约束,那么是的,这是正确的。
如果您有外键约束,则某些数据可能无法访问。你必须修复它。
在 mysqldump 之后执行以下操作:
如果你返回 0,那么是的,原始数据库将不会被修改
为备份创建一个只读用户是个好主意。
这符合不授予用户不需要的权限的一般原则,以减少意外副作用的可能性。
http://sys-log.bencane.com/2011/12/creating-a-read-only-backup-user-for-mysqldump/
我通常还为我用于日常查询的所有数据库创建一个只读用户,除非我确定我需要修改表/模式等。为什么要与用户一起工作而不是完全删除数据库如果我当我只需要从表中选择几行时出错?