MySQL Replication 又称为“AB复制”或者“主从复制”,它主要用于MySQL的实时备份或者读写分离。
在配置之前我们需要做准备工作:配置两台MySQL服务器,或多台
首先安装2台mysql服务器。安装过程这里略过,如有问题,请看之前配置二进制安装mysql和mariadb的博客。此实验简要以RPM安装数据库
环境: 安装数据库
yum install mariadb-server
主节点配置:
1> 添加主服务器的编号,开启二进制日志,每个数据库有自己的独立数据文件
vim /etc/my.cnf
[mysqld]
server-id=7
log-bin
innodb-file-per-table
#重启服务
systemctl restart mariadb
2> 创建权限账号
grant replication slave on *.* to repluser@'192.168.38.%' identified by '123456';
从节点配置:
1> 添加从节点服务器的编号
vim /etc/my.cnf
[mysqld]
server_id=17
2> 重启mariadb服务
systemctl restart mariadb
3> 使用 change master ro 连接主节点
CHANGE MASTER TO
-> MASTER_HOST=‘192.168.38.105’,
-> MASTER_USER=‘repluser’,
-> MASTER_PASSWORD=‘123456’,
-> MASTER_PORT=3306,
-> MASTER_LOG_FILE=‘mariadb-bin.000001’,
-> MASTER_LOG_POS=245;
4> 启用线程
start slave;
配置完成
查看从节点状态
show slave status\G
Slave_IO_Running: Yes
Slave_SQL_Running: Yes 记录两个进程是否启用
Seconds_Behind_Master: 0 记录与主服务器的延时
查看从节点记录连接master信息
cat /var/lib/mysql/master.info
查看中继日志索引
cat relay-log.info
查看进程
show processlist;
查看最新二进制日志点
show master logs;
实验: 将原有的一台mysql,实现多台主从复制
主服务器
1> 更改配置
cat /etc/my.cnf
[mysqld]
server-id=7
log-bin
2> 重启服务
systemctl restart mariadb
3> 创建权限账号
grant replication slave on *.* to repluser@'192.168.39.%' identified by '123456';
4> 主服务器上完全备份
mysql -A -F --single-transaction --master-data=1 > /data/all.sql
5> 将备份文件拷贝到从节点服务器
scp /data/all.sql 192.168.39.132:/data/
从服务器
1> 更改配置,添加服务器编号
vim /etv/my.cnf
[mysqld]
server-id=17
2> 修改备份文件,添加主服务器配置信息
vim /data/all.sql
CHANGE MASTER TO
MASTER_HOST='192.168.39.131',
MASTER_USER='repluser',
MASTER_PASSWORD='123456',
MASTER_PORT=3306,
MASTER_LOG_FILE='mariadb-bin.000002',
MASTER_LOG_POS=245;
3> 恢复数据
mysql < /data/all.sql
4> 进入数据库,启用线程
> start slave;
5> 设为开机自启
systemctl enable mariadb
数据库备份线程随着数据库的启动而启动!