mysql 主从 主备区别_MySQL主从复制与双主互备

一、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. 双主互备测试

你可能感兴趣的:(mysql,主从,主备区别)