mysql5.7 主从复制架构搭建

147 阅读2分钟

1、根据mysql安装文档先安装好两台机器的Mysql示例,都能正常启动。

  • master 192.168.1.40
  • slave 192.168.1.41

2、修改master的mysql配置文件

[mysqld] 
server-id=1 
log-bin=mysql-bin 
binlog_do_db=your_database_name # 如果需要复制的数据库
binlog_ignore_db=your_database_name# 如果需要忽略复制的数据库

其中binlog_do_dbbinlog_ignore_db和如果不配置,默认会复制所有的数据到从库。

3、重启主库mysql,使配置生效

4、创建复制用户

mysql -u root -p //登录主库 
CREATE USER 'repl_user'@'192.168.1.41' IDENTIFIED BY 'your_password';//创建复制用户 
GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'192.168.1.41';//赋权 
FLUSH PRIVILEGES;

5、获取binlog文件的当前坐标,锁定表以确保数据一致性,并获取当前二进制日志文件名和位置。

FLUSH TABLES WITH READ LOCK; 
SHOW MASTER STATUS;

记下 File 和 Position 的值,稍后在从服务器上需要用到。

解锁表:

UNLOCK TABLES;

6、配置从库,修改从库配置文件:

[mysqld] 
server-id=2 
relay-log=relay-log

7、重启从库mysql,使配置生效

8、配置从库的复制参数

mysql -u root -p //登录 
//配置复制参数 
CHANGE MASTER TO 
MASTER_HOST='192.168.1.40', 
MASTER_USER='repl_user', 
MASTER_PASSWORD='Root@..123456', 
MASTER_LOG_FILE='mysql-bin.000001', 
MASTER_LOG_POS=779;

9、启动从库的复制

START SLAVE;

10、查看从库复制状态,确保 Slave_IO_Running 和 Slave_SQL_Running 都是 Yes。如果不是,查看 Last_SQL_Error 以排除错误。

SHOW SLAVE STATUS\G

11、备份和恢复数据(可选)

如果主服务器已经有数据,并且从服务器是一个全新的实例,建议使用 mysqldump 备份主服务器的数据并恢复到从服务器。

在主服务器上备份数据:

mysqldump -u root -p --all-databases --master-data > master_backup.sql

将备份文件传输到从服务器,在从服务器恢复数据:

mysql -u root -p < /path/to/backup/master_backup.sql

然后重新执行从服务器的配置步骤,确保从服务器的复制配置正确无误。