#本文只是一个通过xtrabackup备份数据库的一个简单实现,参数也最简化,为需要的小同学开个头,感兴趣的自己去研究更深的细节
#环境 CentOS 7 Mysql 8
#以下在mysql宿主机上root用户或者sudo shell命令行执行
#安装percona软件源
yum -y install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
#启用相关工具包
percona-release enable-only tools
#安装xtrabackup mysql 8对应版本
yum -y install percona-xtrabackup-80
#添加dba用户
adduser mysqldba
#用户赋予msyql组权限
usermod -g mysql mysqldba
#查看用户mysqldba
id mysqldba
#更改用户密码
passwd mysqldba
#创建备份文件目录
mkdir -p /data/bkps/
#备份目录归属mysqldba用户
chown -R mysqldba.mysql /data/bkps/
#打开用户超级权限描述文件
vim /etc/sudoers
#文件末尾添加一下内容
mysqldba master-01=(root) NOPASSWD:/usr/bin/chown -R mysql.mysql /var/lib/mysql/*, NOPASSWD:/bin/xtrabackup, NOPASSWD:/usr/bin/rm -r /var/lib/mysql/*, NOPASSWD:/usr/bin/systemctl stop mysqld, NOPASSWD:/usr/bin/systemctl start mysqld, NOPASSWD:/usr/bin/systemctl status mysqld
#打开mysql配置文件my.cnf
vi /etc/my.cnf
#最后添加以下配置,指定备份导出默认目录
[xtrabackup]
target_dir = /data/bkps/
#连接mysql
mysql -uroot -p'password' -P3389
#选择mysql数据库
use mysql;
#创建mysql备份用户
CREATE USER 'bkpuser'@'localhost' IDENTIFIED BY 'MyNewPass4!';
GRANT BACKUP_ADMIN, PROCESS, RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO 'bkpuser'@'localhost';
GRANT SELECT ON *.* TO 'bkpuser'@'localhost';
FLUSH PRIVILEGES;
SHOW GRANTS FOR 'bkpuser'@'localhost';
#全库备份
xtrabackup --login-path=bkpuser --backup --user=root --password=password --port=3389