在不丢失记录的情况下迁移 MYSQL 数据库
Migration of MYSQL database without losing records
我正在将 MYSQL 数据库从一台主机迁移到另一台主机,因此我 运行 使用以下命令从旧主机备份数据库:
mysqldump -u **** -p **** | gzip > /home/***/***.sql.gz
然后使用以下命令将数据库导入新主机:
zcat /home/***/***.sql.gz | mysql -u *** -p ***
成功导入数据库后,我将域指向新的 DNS。
问题是该网站处于活动状态,因此很可能在上次备份后插入新记录。因此,我可能需要在完全 DNS 传播后再次 运行 命令。
那么,我的问题是,mysql
命令是插入新行并更新现有行,还是实际上完全删除表并重新开始备份?如果发生这种情况,在 DNS 传播后插入的记录可能会丢失!
谢谢
如果您查看 mysqldump 的输出(在对其进行 gzip 压缩之前),您将看到它包含一系列
DROP TABLE x;
CREATE TABLE x (...);
INSERT INTO x (...) VALUES (...);
所以,不,它不执行插入/替换,它删除并重新创建表。
我正在将 MYSQL 数据库从一台主机迁移到另一台主机,因此我 运行 使用以下命令从旧主机备份数据库:
mysqldump -u **** -p **** | gzip > /home/***/***.sql.gz
然后使用以下命令将数据库导入新主机:
zcat /home/***/***.sql.gz | mysql -u *** -p ***
成功导入数据库后,我将域指向新的 DNS。 问题是该网站处于活动状态,因此很可能在上次备份后插入新记录。因此,我可能需要在完全 DNS 传播后再次 运行 命令。
那么,我的问题是,mysql
命令是插入新行并更新现有行,还是实际上完全删除表并重新开始备份?如果发生这种情况,在 DNS 传播后插入的记录可能会丢失!
谢谢
如果您查看 mysqldump 的输出(在对其进行 gzip 压缩之前),您将看到它包含一系列
DROP TABLE x;
CREATE TABLE x (...);
INSERT INTO x (...) VALUES (...);
所以,不,它不执行插入/替换,它删除并重新创建表。