一、Centos7搭建MySQL主从复制(冷备)
主从复制原理1 Master将改变记录到二进制日志(binary log)中
2 Slave将Master的二进制日志事件(binary log events)拷贝到它的中继日志(relay log)
3 Slave重做中继日志(Relay Log)中的事件,将Master上的改变反映到它自己的数据库中
4 这些是由从库在做,所以是异步的数据同步
主从复制应用场景1 主从服务器互为备份,加强数据库架构的健壮性
2 主从服务器读写分离,分担网站压力,从服务器只处理用户的查询请求
3 将从服务器,按照业务拆分,分担压力
主从复制实践
1. 必须检查防火墙是否已经关闭,若开启状态,先关闭
systemctl status firewalld.servic
注:主从服务器都要关闭
2. 主服务器配置
① 复制mysql配置文件模板到/etc/my.cnf
② 重新启动MySQL
cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
service mysql restart
③ 进入MySQL,查看server_id
show variables like 'server_id';
④ 查看MySQL主库的日志文件信息
show master status;
从服务器的配置
① 复制mysql配置文件模板到/etc/my.cnf
② 修改配置文件/etc/my.cnf的sercer_id,这里修改为2
③ 重新启动MySQL
cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
vim /etc/my.cnf
service mysql restart
④ 进入从MySQL查看server_id是否修改成功
show variables like 'server_id';
⑤ 设置跟踪主库日志文件从库MySQL中输入如下信息master_host 为主库IP地址
master_user 为主库用户名
master_password 为主库密码
master_log_file 为主库日志文件
master_log_pos 为主库日志所占位置
change master to
master_host='192.168.110.130',
master_user='root',
master_password='1234',
master_log_file='mysql-bin.000001',
master_log_pos=107;
⑥ 启动slave服务,并查看slave服务信息
start slave;
show slave status\G;
3. 主服务器设置授权并刷新设置, 否则无法完成主从复制, 注意是在主服务器执行授权
grant all privileges on . to 'root'@'%' identified by '1234' with grant option;
# all privileges:表示将所有权限授予给用户。也可指定具体的权限,如:SELECT、CREATE、DROP等。
# on:表示这些权限对哪些数据库和表生效,格式:数据库名.表名,这里写“*”表示所有数据库,所有表。
# to:将权限授予哪个用户。格式:”用户名”@”登录IP或域名”。%表示没有限制,在任何主机都可以登录。
# identified by:指定用户的登录密码。
# with grant option:表示允许用户将自己的权限授权给其它用户。
flush privileges;
# flush privileges 刷新MySQL的系统权限相关表
4. 主从复制测试
二、CentOS7搭建MySQL双主互备(热备)
双主互备就是要保持两个数据库的状态自动同步,对任何一个数据库的操作都自动应用到另外一个数据库,始终保持两个数据库数据一致,这样做的意义是既提高了数据库的容灾性,又可以做负载均衡,可以将请求分摊到其中任何一台上,提高网站吞吐量
双主互备实践基于以上,查看从服务器日志信息
show master status;
1. 主服务器配置
① 设置跟踪主库日志文件主库MySQL中输入如下信息master_host 为从库IP地址
master_user 为从库用户名
master_password 为从库密码
master_log_file 为从库日志文件
master_log_pos 为从库日志所占位置
change master to
master_host='192.168.110.131',
master_user='root',
master_password='1234',
master_log_file='mysql-bin.000001',
master_log_pos=107;
② 启动slave服务,并查看信息
start slave;
show slave status\G;
2. 双主互备测试