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
然后重新执行从服务器的配置步骤,确保从服务器的复制配置正确无误。