主服务器:接受客户端访问连接
从服务器:自动同步主服务器数据
一、MySQL主从同步
1.配置主服务器
启用binlog日志
授权用户
查看binlog日志信息
[root@mysql51 ~]# systemctl stop firewalld
[root@mysql51 ~]# vim /etc/my.cnf
[mysqld]
server_id=51
log_bin=master51
.....
[root@mysql51 ~]# systemctl restart mysqld
[root@mysql51 ~]# mysql -uroot -ptarena
mysql> grant replication slave on *.* to
-> repluser@"%" identified by "123qqq...A";
mysql> show master status \G
2.配置从服务器
设置server_id
确保与主服务器数据一致
指定主库信息
启动slave程序
查看状态信息
[root@mysql52 ~]# vim /etc/my.cnf
[mysqld]
server_id=52
....
[root@mysql52 ~]# systemctl restart mysqld
[root@mysql51 ~]# mysqldump -uroot -ptarena --master-data db5 > /root/db5.sql
[root@mysql51 ~]# grep master51 /root/db5.sql
CHANGE MASTER TO MASTER_LOG_FILE='master51.000001', MASTER_LOG_POS=2008;
[root@mysql51 ~]# scp /root/db5.sql root@192.168.4.52:/opt/
[root@mysql52 ~]# mysql -uroot -ptarena -e 'create database db5'
[root@mysql52 ~]# mysql -uroot -ptarena db5 < /opt/db5.sql
[root@mysql53 ~]# mysql -uroot -ptarena
mysql> change master to
-> master_host="192.168.4.51", ==>>主服务器IP地址
-> master_user="repluser", ==>>主服务器授权用户
-> master_password="123qqq...A", ==>>授权用户密码
-> master_log_file="master51.000001", ==>>主服务器binlog日志
-> master_log_pos=2008; ==>>日志偏移量
mysql> start slave;
mysql> show slave status \G;
Master_Host: 192.168.4.51
Master_User: repluser
......
Slave_IO_Running: Yes ==>>IO线程已运行
Slave_SQL_Running: Yes ==>>SQL线程已运行
.....
Master信息会自动保存到/var/lib/mysql/master.info文件
若要更改主服务器信息时,应先执行stop slave;修改后执行 start slave;
3.还原从服务器 为独立服务器
master.info 主库信息
relay-log.info 中级日志信息
主机名-relay-bin.xxxxxx 中继日志
主机名-relay-bin.index 索引文件
[root@mysql52 ~]# cd /var/lib/mysql
[root@mysql52 mysql]# rm -fr master.info relay-log.info mysql52-relay-bin.* mysql52-relay-bin.index
[ro