mysql 主从复制配置步骤

时间:2022-05-31 00:36:49

1、准备两台数据库环境,或者单台多实例环境,能否正常启动和登录。

2、配置my.cnf文件,主库配置log-bin和server-id参数,从库配置server-id,不能和主库及其他从库一样,一般不开启从库log-bin功能。注意:配置参数后要重启生效。

3、登录主库增加用于从库连接主库同步的账户例如:rep,并授权replication slave同步的权限。

4、登录主库,整库锁表flush table with read lock(窗口关闭后即失效,超时参数到了也失效);然后show master status查看binlog的位置状态。

5、新开窗口, linux命令行备份或导出原有的数据库数据,并拷贝到从库所在的服务器目录。

如果数据量很大,并允许停机,可以停机打包,而不用mysqldump。

6、解锁主库,unlock tables;

7、把主库导出的原有数据恢复到从库。

8、根据主库的show master status查看binlog的位置状态,在从库执行change master to.. 语句。

9、从库开启同步开关,start slave。

10、从库show slave status\G ,检查同步状态,并在主库进行更新测试。

一,主库配置

1.主库配置/etc/my.cnf

增加server-id 和 bin-log

# vim /etc/my.cnf

server-id = 128
log-bin = mysql-bin    
2.主库配置授权账号
grant replication slave on *.* to rep@'192.168.6.%' identified by 'ruowei123'; 
flush privileges; 
3.重启主库
# /etc/init.d/mysqld restart
4.主库锁
 flush table with read lock;
5.查看master位置信息
show master status;
mysql 主从复制配置步骤
6.导出主库数据
mysqldump -uxxx -p > mysql_bak 
7.主库解锁
unlock table;
二、从库配置

1.从库配置/etc/my.cnf

增加server-id 和 bin-log

# vim /etc/my.cnf

server-id = 129
#如果需要在从库上做bin-log备份可以添加如下参数
log-bin = mysql-bin   
log-slave-updates = 1   
2.重启数据库
# /etc/init.d/mysqld restart
3.恢复主库数据到从库
# mysql -uroot < mysql_bak.sql 
4.登录从库配置同步参数
mysql> CHANGE MASTER TO
    -> MASTER_HOST='192.168.6.128',
    -> MASTER_USER='rep',
    -> MASTER_PASSWORD='ruowei123',
    -> MASTER_LOG_FILE='mysql-bin.000001',
    -> MASTER_LOG_POS=120;
Query OK, 0 rows affected, 2 warnings (0.09 sec)
5.启动从库同步开关
start slave;
6.查看同步状态
show slave status\G;
或者
# mysql -uroot -e "show slave status\G "|egrep "Seconds_Behind_Master|_Running"
mysql 主从复制配置步骤

判断复制是否搭建成功就看如下IO和SQL两个线程是否显示为Yes状态,

Slave_IO_Running: Yes  #负责从库去主库读取BINLOG日志,并写入从库的中继日志中

Slave_SQL_Running: Yes  #负责读取并执行中继日志中的BINGLOG,转换SQL语句后应用到数据库汇总