mysql5.7主从搭建

目录

一、前言

二、安装前准备

1.安装包下载

2.检查环境

三、安装与配置

1.安装

2.主从配置


一、前言

      如今,mysql主从应用已经非常的广泛,毕竟数据是无价的,一主一从通过binlog日志进行数据的热备份,保证mysql数据的基础备份功能,还为高并发时做mysql数据库读写分离打下基础;

      本文介绍了Mysql主从复制的完整安装过程,安装环境如下:

            系统:centos7

            mysql版本:5.7

            内容:一主一从

二、安装前准备

1.安装包下载

下载地址:MySQL :: Download MySQL Community Server

a.通过浏览器选择下载mysql5.7RPM包,再上传到服务器

mysql5.7主从搭建_第1张图片

mysql5.7主从搭建_第2张图片

mysql5.7主从搭建_第3张图片

b.服务器上通过wget下载

wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.32-1.el7.x86_64.rpm-bundle.tar

2.检查环境

a.检查系统是否安装有mariadb环境,存在则卸载

rpm -qa|grep mariadb

yum remove mariadb-libs

b.服务器时间检查

使用date查询时间是否准确,如果不准,centos7系统可以使用ntpdate同步时间或者重启chronyd服务(systemctl restart chronyd)

三、安装与配置

1.安装

创建mysql工作目录,解压安装包

mkdir mysql

tar -xf mysql-5.7.32-1.el7.x86_64.rpm-bundle.tar -C mysql

进入mysql目录:cd mysql

按照依赖关系依次安装rpm包 依赖关系依次为common→libs→client→server

rpm -ivh mysql-community-common-5.7.32-1.el7.x86_64.rpm

rpm -ivh mysql-community-libs-5.7.32-1.el7.x86_64.rpm

rpm -ivh mysql-community-client-5.7.32-1.el7.x86_64.rpm

rpm -ivh mysql-community-server-5.7.32-1.el7.x86_64.rpm

mysql5.7主从搭建_第4张图片

查看配置文件:cat /etc/my.cnf

默认存储目录:datadir=/var/lib/mysql

mysql5.7主从搭建_第5张图片

启动mysql:systemctl start mysqld

开机自启动:systemctl enable mysqld

登录数据库:mysql -uroot -p

初始密码查看:cat /var/log/mysqld.log|grep password

进入数据库修改root初始密码:alter user root@localhost identified by 'password';

2.主从配置

a.主库

vim /etc/my.cnf

在[mysqld]下配置

log-bin           = mysql-bin  #[必须]启用二进制日志
server-id         = 11         #[必须]服务器唯一ID,默认是1,最好取ip的后3位
expire-logs-days  = 7          #只保留7天的二进制日志,以防磁盘被日志占满

注意如下两个参数,按需求配置:

binlog-ignore-db  = mysql       #不备份的数据库,默认的4个数据库可以添加上去,此环境不做配置

binlog-do-db=mybatis    #标明需要做复制的数据库名,此环境不做配置,同步所有

重启数据库:systemctl restart mysqld

登录数据库查看log_bin是否成功开启:log_bin为ON则表示开启成功,OFF表示开启失败

show variables like '%log_bin%';

mysql5.7主从搭建_第6张图片
 

b.从库

vim /etc/my.cnf

在[mysqld]下配置

log-bin           = mysql-bin  #从库可不启用二进制日志
server-id         = 12         #[必须]服务器唯一ID,默认是1,最好取ip的后3位
expire-logs-days  = 7          #只保留7天的二进制日志,以防磁盘被日志占满

注:从库配置和主库区别,server-id必须填且不能相同,从库可以不开启log-bin配置,此处开启原因是方便主库宕机后的主从切换(主库宕机,从库变为主库,主库回复后,同步从库数据,变为从库),保证数据库的可用性

重启数据库:systemctl restart mysqld

c.同步操作

登录主库执行

主库中创建同步账号:

grant replication slave on *.* to 'backup'@'%' identified by 'Bak@1234';

replication即可满足同步需求,如果不行,可以给all权限

查询数据库账号:

select user,authentication_string,host from mysql.user;

查看主服务器上当前的二进制日志名和偏移量值:

show master status \G

mysql5.7主从搭建_第7张图片

登录从库执行

stop slave;  关闭slave

change master to master_host='192.168.142.11',master_user='backup',master_password='Bak@1234',master_log_file='mysql-bin.000001',master_log_pos=439;

start slave;  开启slave

各个参数含义:

master_host 主库主机的IP地址

master_port 主库的端口,默认为3306

master_user 实现复制的远程登录master的mysql的用户

master_password 实现复制的远程登录master的mysql的面

master_log_file 实现复制的binlog日志文件(主库的文件名)

master_log_pos 实现复制的binlog日志文件的偏移量(主库的偏移量)

注意:同步操作时,要保证从库的初始数据在主库的偏移量值,如果是给已在使用的数据库增加从库,可以参考使用xtrabackup备份恢复迁移mysql数据,解决mysql主从故障(不用锁表)_叼不起的烟斗的博客-CSDN博客_xtrabackup 备份迁移

d.检查同步配置是否成功

查看状态,出现两个"YES"则表明配置完成

show slave status \G

mysql5.7主从搭建_第8张图片

验证:主库上创建数据库或者新增数据,查看从库是否同步即可

e.未开启防火墙导致故障

mysql5.7主从搭建_第9张图片

开启端口即可

firewall-cmd --permanent --add-port=3306/tcp

firewall-cmd --reload

-----------日常记录---------------

你可能感兴趣的:(数据库,centos7,mysql,linux,centos)