1、概述
使用Xtrabackup搭建MySQL数据库环境为一主一从,数据库版本为:mysql 5.7.31
角色 IP地址 Server_id 操作系统 数据库版本
Master 172.168.73.129 1293306 CentOS Linux release 7.7.1908 (Core) mysql 5.7.31
Slave 172.168.73.130 1303306 CentOS Linux release 7.7.1908 (Core) mysql 5.7.31
2、安装部署
2.1Mysql5.7.31安装
官网下载
https://downloads.mysql.com/archives/community/
1)上传mysql安装文件并解压到指定目录
cd /opt
#解压到/usr/local/目录下
[root@localhost opt]#tar xvf mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
#软连接
cd /usr/local
[root@localhost local]# ln -sf mysql-5.7.31-linux-glibc2.12-x86_64/ mysql
2)创建目录
mkdir -p /data/3306/log/mysqllog
mkdir -p /data/3306/log/mysqlbinlog
mkdir -p /data/3306/log/mysqlrelay
mkdir -p /data/3306/log/mysqlslow
mkdir -p /data/3306/mysql
3)创建用户和组
[root@localhost local]# groupadd -g 1100 mysql
[root@localhost local]# useradd -g mysql -u 1100 mysql
4)清楚系统自带的MariaDB
[root@localhost local]# rpm -qa|grep mariadb*
mariadb-libs-5.5.64-1.el7.x86_64
[root@localhost local]# rpm -e --nodeps mariadb-libs-5.5.64-1.el7.x86_64
5)修改环境变量
[root@localhost local]# vi /etc/profile
PATH=/usr/local/mysql/bin:$PATH
#更新环境
[root@localhost local]# source /etc/profile
#查看版本
[root@localhost local]# mysql -V
mysql Ver 14.14 Distrib 5.7.31, for linux-glibc2.12 (x86_64) using EditLine wrapper
6)准备参数文件(本文是最简化配置文件,根据需求自己添加)(与主库配置文件一致,只需要修改server-id,不能跟主库一致)
——————————————————————————————————————————
[mysqld]
datadir=/data/3306/mysql
socket=/data/3306/mysql/mysqld.sock
symbolic-links=0
log-error=/data/3306/log/mysqllog/mysqlerror.log
pid-file=/data/3306/mysql/mysqld.pid
lower-case-table-names=1
log-bin=/data/3306/log/mysqlbinlog/mysql_bin
server-id=1293306
——————————————————————————————————————————-
7)赋权
chown -R mysql:mysql /data/
chown -R mysql:mysql /usr/local/mysql/
8)初始化数据库
mysqld --defaults-file=/etc/my.cnf --initialize --user=mysql
9)启动数据库
mysqld_safe --defaults-file=/etc/my.cnf --user=mysql &
10)查看初始化密码
cat /data/3306/log/mysqllog/mysqlerror.log |grep localhost
11)用初始化密码登录MySQL后重新修改登录密码
mysql -uroot -S /data/3306/mysql/mysqld.sock -p
alter user root@'localhost' identified by '123';
flush privileges;
2.2一主一从搭建说明
MySQL数据库搭建主从,正式线上生产环境由于数据量较大,需要从主库拿到最近一次的全库备份,将主库备份导入从库并恢复,在进行主从绑定。
备份分为两种方式:(下边有两种方法操作过程)
1)如果数据量大请采用物理备份(xtrabackup ),需要安装
2)如果数据量小请采用逻辑备份(mysqldump),无需安装
备份会产生短暂的锁,请注意操作
本次操作在主库上使用,物理备份xtrabackup备份,数据量为(7G多)
下面是查询数据量的方法:
mysql> use information_schema
mysql> select concat(round(sum(data_length/1024/1024),2),'MB') as data from tables;
+---------+
| data |
+---------+
| 6345.54MB |
+---------+
1 row in set (3.02 sec)
2.3xtrabackup-2.4.24 主库从库安装(本次使用主库备份方式)
官网地址:https://www.percona.com/downloads/Percona-XtraBackup-2.4/LATEST/
解压 : tar xvf percona-xtrabackup-2.4.21-Linux-x86_64.glibc2.12.tar.gz -C /usr/local/
[root@localhost opt]# mv percona-xtrabackup-2.4.24-Linux-x86_64.glibc2.12 xtrabackup
设置环境变量或者软连接(方法任选其一)
方法1 设置环境变量
[root@localhost src]# vi /etc/profile
设置如下:
export PHP_HOME=/usr/local/php
PATH=$PATH:$PHP_HOME/bin:/usr/local/xtrabackup/bin
export PATH
说明:只需要在path中加入:/usr/local/xtrabackup/bin即可
使新设置的环境变量生效
[root@localhost src]# source /etc/profile
方法2 创建软链接
[root@localhost src]# ln -s /usr/local/xtrabackup/bin/* /usr/bin/
查看版本xtrabackup --version 至此安装好了
2.4xtrabackup主库备份(本次使用备份方式)
主库上操作备份
[root@tg tmp]# innobackupex --user=root --password=123 -S /data/3306/mysql/mysqld.sock --no-timestamp /data/backup/full_`date +%F`
把备份文件传到从库(需要系统root密码)
scp -r /data/backup/full_2022-09-20 root@172.168.73.130:/data/backup/
#使用此方式备份恢复需要从库关机并清空数据目录
shutdown;
#从库清空数据目录
rm -rf /var/lib/mysql/*
从库上操作(还原主库数据)
#应用备份数据redo log
[root@localhost local]# innobackupex --apply-log /data/backup/full_2022-09-20/
#恢复数据
[root@localhost local]# innobackupex --copy-back /data/backup/full_2022-09-20/
#更改目录权限
[root@localhost backup]# chown -R mysql:mysql /usr/local/mysql/
#启动数据库
mysqld_safe &
#登录数据库
mysql -uroot -S /var/lib/mysql/mysql.sock -p123
2.5主从绑定
添加同步账号并授权
mysql> create user 'repl'@'172.168.73.%' identified by '123';
Query OK, 0 rows affected (0.01 sec)
mysql> grant replication slave on *.* to repl@'172.168.73.%';
Query OK, 0 rows affected (0.00 sec)
#刷新权限
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
配置同步
#查看备份位置点:
[root@localhost full_2022-09-20]# cat /data/backup/full_2022-09-20/xtrabackup_binlog_info
mysql-bin.000027 203595787
#从库上进行绑定操作:
CHANGE MASTER TO
MASTER_HOST='172.168.73.129',
MASTER_USER='repl',
MASTER_PASSWORD='123',
MASTER_PORT=3306,
MASTER_LOG_FILE='mysql-bin.000027',
MASTER_LOG_POS=203595787;
#启动线程
start slave;
#查看状态
show slave status\G;
#结果有两个参数为yes 表示搭建成功
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Seconds_Behind_Master: 0
——————————————————————————————————————————
不定期分享MySQL DBA工作中遇到的问题,如果文章中有错误欢迎大家在评论区指正,我们互相交流学习,如果觉得文章还不错对你有所帮助,希望大家点赞加关注哦!