「MySQL」- 导出主库数据,并导入从库

第一步、从主库导出数据

使用 Xtrabackup 创建全量备份:

#!/bin/sh

xtrabackup --backup --user=root --password --target-dir=/data/backups/

对全量备份数据进行预备操作:

#!/bin/sh

xtrabackup --prepare --target-dir=/data/backups/

第二步、将数据导入从库

数据导入:将数据复制到目标主机,将数据导入 MySQL 数据目录(详细过程略过)。

调整权限:修改数据目录权限,以允许 MySQL 访问。

启动服务:启动数据库服务,并检查 MySQL 能够成功启动。

其他方法:使用 mysqldump 导出

锁定所有的表,防止数据更新:

mysql> FLUSH TABLES WITH READ LOCK;

查看在主库中 binlog 位置(这是从库复制开始的位置,需要记住这些数字):

mysql> SHOW MASTER STATUS;
+---------------+----------+--------------+------------------+-------------------+
| File          | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+---------------+----------+--------------+------------------+-------------------+
| binlog.000001 |   497120 |              |                  |                   |
+---------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

使用 mysqldump 命令导出数据,并导入从库中(详细过程略过)。

解锁之前锁定的表,以允许数据写入:

mysql> UNLOCK TABLES;

参考文献

How To Set Up Master Slave Replication in MySQL