Database-MySQL 主从同步

MySQL 主从同步的流程。

创建用户

在公有云的控制台中直接创建新用户 slave,注意添加权限,或者直接用命令:

1
2
3
CREATE USER '用户名'@'主机' IDENTIFIED BY '密码';
GRANT ALL PRIVILEGES ON *.* TO 'testUser'@'%';
FLUSH PRIVILEGES;

导出数据备份文件

导出主库的全部数据:

1
mysqldump --all-databases --host=[主机IP] --port=[主机端口] --user=slave -p > backup.sql

设置 Server-Id 并开启从库 GTID 模式

修改my.cnf的配置文件,在[mysqld]中增加:

1
2
3
4
server-id=[唯一字符串]
gtid-mode = ON
enforce-gtid-consistency = ON
log-slave-updates = ON

完成后重启 mysql 服务,然后查看是否开启成功:

1
show variables like '%gtid%';

导入数据备份文件

导入备份文件到从库:

1
mysql -u root -p < backup.sql

建立主从关系

设置主从关系:

1
2
CHANGE MASTER TO MASTER_HOST='[主机IP]', MASTER_PORT=[主机端口], MASTER_USER='slave', MASTER_PASSWORD='[密码]', MASTER_AUTO_POSITION=1;
start slave;

查看是否连接成功:

1
show slave status\G;

如果 SLAVE_IO_RUNNING 以及 SLAVE_SQL_RUNNING 均为 YES,并且可以看到 Retrieved_Gtid_Set 以及 Executed_Gtid_Set 就说明成功了。

Database-MySQL-Slave

验证主从同步

可在主库上新建一条测试数据,然后查看从库是否同步成功。