MySQL主从数据库配置与原理

1.为什么要搭建主从数据库

(1)通过增加从库实现读写分离,提高系统负载能力

(2)将从库作为数据库备份库,实现数据热备份,为数据恢复提供机会

(3)根据业务将不同服务部署在不同机器同时又共享相同的数据

 2.主从数据库原理分析

 主从数据库同步流程

步骤一:主库开启binlog日志后,会启动dump将数据数据变化写入binlog

步骤二:从库开启slave参数后,会与主库建立一个连接

步骤三:主库数据变化是dump线程会将变化的数据写入binlog中并将数据通过步骤二建立的连接写到从库中

步骤四:从库接收到主库发送的binlog内容后将内容写入relay log

步骤五:创建一个SQL线程从relay log读取数据写入到数据库中

3.搭建流程

以contes7系统,5.7.29版本的数据库为例

(1)安装完数据库之后找到主库mysql服务的配置文件my.cnf,一般默认在/etc/目录下

(2)在配置文件中的[mysqld]下增加以下两行,server-id为mysql服务唯一id,不用mysql服务不能重复,log-bin=mysql-bin为生成binlog的文件目录和文件名,也可写成log-bin=/自定义目录/mysql-bin

server-id=1
log-bin=mysql-bin

(3)mysql会话输入show master status;

 (4)修改从库mysql服务配置文件,增加以下一行配置

server-id=2

(5)在主库会话中创建从库同步数据的账号并刷新权限,赋予slave权限到用户名为“slave”的账户上,“%”表示不限制ip,密码为“123456”

grant replication slave on *.* to 'slave'@'%' identified by '123456';
flush privileges;

(6)从库mysql会话设置要连接的主库的相关信息,设置参数与show master status查询出来的数据对应上即可

change master to master_host='192.168.168.243',master_user='slave',master_password='123456',master_log_file='mysql-bin.000003',master_log_pos=8378;

(7)从库开启同步功能

start slave;

(8)查看从库状态show slave status; 可以看到Slave_IO_Running和Slave_SQL_Running两个线程已启动

原文地址:https://www.cnblogs.com/xiguadadage/p/12801083.html