mysql 主从复制配置步骤

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 statusG ,检查同步状态,并在主库进行更新测试。

一,主库配置

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;

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 statusG;

或者

# mysql -uroot -e "show slave statusG "|egrep "Seconds_Behind_Master|_Running"

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

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

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

经验分享 程序员 微信小程序 职场和发展