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两个线程已启动