Mysql8.0 Percona Xtrabackup使用教程
Mysql8.0安装Xtrabackup
一、Xtrabackup简介 Innobackupex is the symlink for xtrabackup . innobackupex still supports all features and syntax as 2.2 version did, but is now deprecated and will be removed in next major release. a compiled C binary that provides functionality to backup a whole MySQL database instance with MyISAM , InnoDB , and XtraDB tables.
二、关闭防火墙 1 2 3 systemctl stop firewalld systemctl disable firewalld systemctl status firewalld
三、关闭Selinux 1 2 sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux setenforce 0
四、安装Mysql 略
五、开启bin log 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 (1)查看login配置 mysql> show variables like '%log%bin%'; +----------------------------------+--------------------------+ | Variable_name | Value | +----------------------------------+--------------------------+ | log_bin | ON | | log_bin_basename | /data/mysql/binlog | | log_bin_index | /data/mysql/binlog.index | | log_bin_trust_function_creators | OFF | | log_bin_use_v1_row_events | OFF | | log_statements_unsafe_for_binlog | ON | | sql_log_bin | ON | +----------------------------------+--------------------------+ 7 rows in set (0.00 sec) (2)开启binlog # vi /etc/my.cnf [mysqld] log-bin=mysql-bin server_id=1 binlog_format=row 注意: 在MySQL8中,默认情况下开启了binlog(二进制日志),但是没有开启日志记录功能,如需要开启日志记录,则使用以下命令: SET GLOBAL log_output = 'FILE'; SET GLOBAL general_log = 'ON';
六、安装Xtrabackup 1.yum方式安装
安装epel源主要是为了安装依赖包zstd,如果不安装epel,安装Xtrabackup会提示找不到zstd包https://mirrors.aliyun.com/epel/
Install from Percona YUM repository
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 (1)安装yum源 # wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo # yum install epel-release -y # yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm # yum clean all && yum makecache 温馨提示: RHEL/Centos 5不支持从远程位置直接安装软件包,因此您需要首先下载软件包,然后用rpm手动安装 # wget https://repo.percona.com/yum/percona-release-latest.noarch.rpm # rpm -ivh percona-release-latest.noarch.rpm (2)开启percona xtrabackup存储库 # percona-release enable pxb-80 (4)安装Xtrabackup # yum install percona-xtrabackup-80-8.0.34 (5)验证安装 # xtrabackup --version xtrabackup version 8.0.34-29 based on MySQL server 8.0.34 Linux (x86_64) (revision id: 5ba706ee) (6)查看Xtrabackup安装路径 # which xtrabackup /usr/bin/xtrabackup # rpm -qa|grep xtrabackup percona-xtrabackup-80-8.0.34-29.1.el7.x86_64 # rpm -ql percona-xtrabackup-80-8.0.34-29.1.el7.x86_64 /usr/bin/xbcloud /usr/bin/xbcloud_osenv /usr/bin/xbcrypt /usr/bin/xbstream /usr/bin/xtrabackup /usr/bin/xtrabackup-debug /usr/include/kmip.h /usr/include/kmippp.h /usr/lib/libkmip.a /usr/lib/libkmippp.a /usr/lib/private/icudt73l /usr/lib/private/icudt73l/brkitr /usr/lib/private/icudt73l/brkitr/burmesedict.dict /usr/lib/private/icudt73l/brkitr/char.brk /usr/lib/private/icudt73l/brkitr/cjdict.dict /usr/lib/private/icudt73l/brkitr/de.res /usr/lib/private/icudt73l/brkitr/el.res /usr/lib/private/icudt73l/brkitr/en.res /usr/lib/private/icudt73l/brkitr/en_US.res /usr/lib/private/icudt73l/brkitr/en_US_POSIX.res /usr/lib/private/icudt73l/brkitr/es.res /usr/lib/private/icudt73l/brkitr/fi.res /usr/lib/private/icudt73l/brkitr/fr.res /usr/lib/private/icudt73l/brkitr/it.res /usr/lib/private/icudt73l/brkitr/ja.res /usr/lib/private/icudt73l/brkitr/khmerdict.dict /usr/lib/private/icudt73l/brkitr/ko.res /usr/lib/private/icudt73l/brkitr/laodict.dict /usr/lib/private/icudt73l/brkitr/line.brk /usr/lib/private/icudt73l/brkitr/line_cj.brk /usr/lib/private/icudt73l/brkitr/line_loose.brk /usr/lib/private/icudt73l/brkitr/line_loose_cj.brk /usr/lib/private/icudt73l/brkitr/line_loose_phrase_cj.brk /usr/lib/private/icudt73l/brkitr/line_normal.brk /usr/lib/private/icudt73l/brkitr/line_normal_cj.brk /usr/lib/private/icudt73l/brkitr/line_normal_phrase_cj.brk /usr/lib/private/icudt73l/brkitr/line_phrase_cj.brk /usr/lib/private/icudt73l/brkitr/pt.res /usr/lib/private/icudt73l/brkitr/res_index.res /usr/lib/private/icudt73l/brkitr/root.res /usr/lib/private/icudt73l/brkitr/ru.res /usr/lib/private/icudt73l/brkitr/sent.brk /usr/lib/private/icudt73l/brkitr/sent_el.brk /usr/lib/private/icudt73l/brkitr/sv.res /usr/lib/private/icudt73l/brkitr/thaidict.dict /usr/lib/private/icudt73l/brkitr/title.brk /usr/lib/private/icudt73l/brkitr/word.brk /usr/lib/private/icudt73l/brkitr/word_POSIX.brk /usr/lib/private/icudt73l/brkitr/word_fi_sv.brk /usr/lib/private/icudt73l/brkitr/zh.res /usr/lib/private/icudt73l/brkitr/zh_Hant.res /usr/lib/private/icudt73l/cnvalias.icu /usr/lib/private/icudt73l/uemoji.icu /usr/lib/private/icudt73l/ulayout.icu /usr/lib/private/icudt73l/unames.icu /usr/lib/private/libprotobuf-lite.so.3.19.4 /usr/lib/private/libprotobuf.so.3.19.4 /usr/lib64/xtrabackup/plugin/component_keyring_file.so /usr/lib64/xtrabackup/plugin/component_keyring_kmip.so /usr/lib64/xtrabackup/plugin/component_keyring_kms.so /usr/lib64/xtrabackup/plugin/keyring_file.so /usr/lib64/xtrabackup/plugin/keyring_vault.so /usr/share/doc/percona-xtrabackup-80-8.0.34 /usr/share/doc/percona-xtrabackup-80-8.0.34/LICENSE /usr/share/man/man1/xbcrypt.1.gz /usr/share/man/man1/xbstream.1.gz /usr/share/man/man1/xtrabackup.1.gz
Install with RPM packages1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 (1)下载percona-xtrabackup wget -c https://downloads.percona.com/downloads/Percona-XtraBackup-8.0/Percona-XtraBackup-8.0.34-29/binary/redhat/7/x86_64/percona-xtrabackup-80-8.0.34-29.1.el7.x86_64.rpm (2)下载依赖包 阿里镜像源地址: https://mirrors.aliyun.com/centos https://mirrors.aliyun.com/epel/ # wget -c https://mirrors.aliyun.com/epel/7Server/x86_64/Packages/z/zstd-1.5.5-1.el7.x86_64.rpm # wget -c https://mirrors.aliyun.com/centos/7.9.2009/extras/x86_64/Packages/libev-4.15-7.el7.x86_64.rpm # rpm -ivh zstd-1.5.5-1.el7.x86_64.rpm # rpm -ivh libev-4.15-7.el7.x86_64.rpm (3)安装 # yum localinstall percona-xtrabackup-80-8.0.34-29.1.el7.x86_64.rpm (4)验证安装 [root@server01 ~]# xtrabackup --version 2025-01-19T11:24:23.484107+08:00 0 [Note] [MY-011825] [Xtrabackup] recognized server arguments: --datadir=/var/lib/mysql xtrabackup version 8.0.34-29 based on MySQL server 8.0.34 Linux (x86_64) (revision id: 5ba706ee)
2.二进制方式安装
https://docs.percona.com/percona-xtrabackup/8.0/binary-tarball.html#download-the-tarball
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 (1)下载binary tarballs wget -c https://downloads.percona.com/downloads/Percona-XtraBackup-8.0/Percona-XtraBackup-8.0.34-29/binary/tarball/percona-xtrabackup-8.0.34-29-Linux-x86_64.glibc2.17.tar.gz (2)安装依赖 yum install perl-Digest-MD5 -y (3)安装xtrabackup # tar xvf percona-xtrabackup-8.0.34-29-Linux-x86_64.glibc2.17.tar.gz -C /usr/local/ # cd /usr/local/ # ln -s percona-xtrabackup-8.0.34-29-Linux-x86_64.glibc2.17/ pxb # cd pxb/bin # ./xtrabackup --version 2025-01-19T12:03:51.549534+08:00 0 [Note] [MY-011825] [Xtrabackup] recognized server arguments: --datadir=/var/lib/mysql ./xtrabackup version 8.0.34-29 based on MySQL server 8.0.34 Linux (x86_64) (revision id: 5ba706ee) (4)添加环境变量 # vi /etc/profile export PATH=/usr/local/pxb/bin:$PATH # source /etc/profile xtrabackup备份报错: Can't locate Digest/MD5.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at - line 754. BEGIN failed--compilation aborted at - line 754. 解决办法: # yum install perl-Digest-MD5 -y Failed to connect to MySQL server as DBD::mysql module is not installed at - line 1548. 解决办法: # yum install perl-DBD-MySQL -y Failed to connect to MySQL server: DBI connect(';mysql_read_default_group=xtrabackup;host=localhost;mysql_socket=/tmp/mysql.sock','backup',...) failed: Authentication plugin 'caching_sha2_password' cannot be loaded: /usr/lib64/mysql/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory at - line 1535. 2025-01-19T22:52:42.829783+08:00 0 [Note] [MY-011825] [Xtrabackup] Connecting to MySQL server host: localhost, user: backup, password: set, port: not set, socket: /tmp/mysql.sock alter user backup@'localhost' identified with 'mysql_native_password' by '123456'; flush privileges;
七、创建备份帐号
权限: https://docs.percona.com/percona-xtrabackup/8.0/privileges.html#privileges-needed
1.创建帐号 1 2 3 4 5 6 7 8 9 10 11 12 create user backup@'localhost' identified by '123456'; grant backup_admin,reload,process,lock tables,replication client on *.* to backup@'localhost'; grant select on performance_schema.log_status to backup@'localhost'; grant select on performance_schema.keyring_component_status to backup@'localhost'; grant select on performance_schema.replication_group_members to backup@'localhost'; flush privileges;
2.使用mysql_config_editor隐藏帐号密码 1 2 3 4 5 # mysql_config_editor set --login-path=pxb --user=backup --password --host=localhost # mysql_config_editor set --login-path=pxb --user=backup --password --host=localhost -S /tmp/mysql.sock # mysql --login-path=pxb
八、备份
https://www.jb51.net/database/327463ae4.htm https://bbs.huaweicloud.com/blogs/423617
1.全备
如果/data/backup目录不存在,则会自动创建,如果指定的是相对路径,则备份文件会存储在当前目录,如果目录中已存在文件,则不会覆盖,会提示文件已存在: xtrabackup: Can’t create/write to file ‘/data/backups/xtrabackup_logfile’ (OS errno 17 - File exists)
1 2 3 xtrabackup -ubackup -p --host localhost --backup --target-dir=/data/backup 或 xtrabackup --login-path=pxb --backup --target-dir=/data/backup/full
2.增量备份
https://docs.percona.com/percona-xtrabackup/8.0/create-incremental-backup.html#create-an-incremental-backup_1 To make an incremental backup, begin with a full backup as usual. The xtrabackup binary writes a file called xtrabackup_checkpoints into the backup’s target directory. This file contains a line showing the to_lsn, which is the database’s LSN at the end of the backup. Create the full backup with a following command:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 第一次增量备份 xtrabackup --login-path=pxb --backup --target-dir=/data/backup/incr --incremental-basedir=/data/backup/full 第二次增量备份 xtrabackup --backup --target-dir=/data/backup/inc2 --incremental-basedir=/data/backups/incr 或 xtrabackup --backup --target-dir=/data/backup/inc2 --incremental-lsn=20423352
3.备份脚本 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 (1)全备脚本 #!/bin/bash #set env export PATH=/usr/local/mysql/bin:/usr/local/pxb/bin:$PATH DATE=`date +%Y%m%d` datadir=/apps/data keep_days=31 keep_date=`date -d "$keep_days days ago" +"%Y%m%d"` mount_point=/backup backup_path=$mount_point/pxb backup_full=$backup_path/full log_dir=$backup_path/log logfile=mysql_backup_${DATE}.log if ! mount | grep -q " on ${mount_point} type "; then echo "`date +%Y%m%d` Please check if the directory $backup_path exists!" > /tmp/$logfile exit 1 fi [ ! -d $log_dir ] && mkdir $log_dir echo "----------------------------- Backup Start: `date "+%Y-%m-%d %H:%M:%S"` ---------------- -------------" > $log_dir/$logfile mkdir -p $backup_full/$DATE xtrabackup --login-path=pxb \ --backup \ --datadir=$datadir \ --target-dir=$backup_full/$DATE \ --compress \ --compress-threads=4 >> $log_dir/$logfile 2>&1 echo "----------------------------- Backup End: `date "+%Y-%m-%d %H:%M:%S"` ------------------ -------------" >> $log_dir/$logfile find $backup_full/* -maxdepth 0 -type d ! -newermt $keep_date |xargs rm -rf find $log_dir/* -maxdepth 0 -type f -mtime +$keep_days |xargs rm -rf (2)全备+增量脚本 #!/bin/bash #set env PATH=/usr/local/pxb/bin:$PATH DATE=`date +%Y%m%d` DATE_D=`date +%w` datadir=/data/mysql keep_days=15 keep_date=`date -d "$keep_days days ago" +"%Y%m%d"` backup_path=/data/backup backup_full=$backup_path/full backup_incr=$backup_path/incr logfile=$backup_path/log [ ! -d $logfile ] && mkdir $logfile full_base_dir=$backup_full/$(ls -tr $backup_full|tail -n 1) incr_base_dir=$backup_incr/$(ls -tr $backup_incr|tail -n 1) incr_filename=$(ls -tr $backup_incr|tail -n 1) full_lsn=$(grep -i to_lsn $full_base_dir/xtrabackup_checkpoints 2> /dev/null |awk -F'=' '{print $2}') incr_lsn=$(grep -i to_lsn $incr_base_dir/xtrabackup_checkpoints 2> /dev/null |awk -F'=' '{print $2}') if [ $incr_filename ] && [ $incr_lsn ];then incr_basedir=$incr_base_dir else incr_basedir=$full_base_dir fi if [ $DATE_D -eq 0 ] || [ ! $full_lsn ]; then Type=Full echo "----------------------------- Backup Start: `date "+%Y-%m-%d %H:%M:%S"` -----------------------------" > $logfile/${Type}_mysql_$DATE.log mkdir -p $backup_full/$DATE xtrabackup --login-path=pxb --backup --datadir=$datadir --target-dir=$backup_full/$DATE --compress --compress-threads=4 >> $logfile/${Type}_mysql_$DATE.log 2>&1 echo "----------------------------- Backup End: `date "+%Y-%m-%d %H:%M:%S"` -------------------------------" >> $logfile/${Type}_mysql_$DATE.log else Type=Incr echo "----------------------------- Backup Start: `date "+%Y-%m-%d %H:%M:%S"` -----------------------------" > $logfile/${Type}_mysql_$DATE.log mkdir -p $backup_incr/$DATE xtrabackup --login-path=pxb --backup --datadir=$datadir --target-dir=$backup_incr/$DATE --incremental-basedir=$incr_basedir >> $logfile/${Type}_mysql_$DATE.log 2>&1 echo "----------------------------- Backup End: `date "+%Y-%m-%d %H:%M:%S"` -------------------------------" >> $logfile/${Type}_mysql_$DATE.log fi find $backup_incr/* -maxdepth 0 -type d -mtime +$keep_days |xargs rm -rf find $backup_full/* -maxdepth 0 -type d ! -newermt $keep_date |xargs rm -rf find $logfile/* -maxdepth 0 -type f -mtime +$keep_days |xargs rm -rf (3)定时任务: 32 20 * * * /root/script/mysql_backup_pxb.sh > /root/script/mysql_backup.log 2>&1
九、恢复
After making a backup with the --backup option, you need to prepare it in order to restore it. Data files are not point-in-time consistent until they are prepared , because they were copied at different times as the program ran, and they might have been changed while this was happening.
You can run the prepare operation on any machine; it does not need to be on the originating server or the server to which you intend to restore. You can copy the backup to a utility server and prepare it there.
Note that Percona XtraBackup 8.0 can only prepare backups of MySQL 8.0, Percona Server for MySQL 8.0, and Percona XtraDB Cluster 8.0 databases. Releases prior to 8.0 are not supported.
It is not recommended to interrupt xtrabackup process while preparing backup because it may cause data files corruption and backup will become unusable. Backup validity is not guaranteed if prepare process was interrupted.
1.全备恢复 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 (1)prepare全备 xtrabackup --prepare --target-dir=/data/backup (2)恢复 xtrabackup --copy-back --target-dir=/data/backup 或 xtrabackup --move-back --target-dir=/data/backup 或 rsync -avrP /data/backup/ /var/lib/mysql/ (3)修改数据目录权限 chown -R mysql:mysql /var/lib/mysql (4)启动数据库 /etc/init.d/mysql start 注意: 如果备份已经压缩过,则在prepare之前需要解压缩: xtrabackup --login-path=pxb --decompress --remove-original --target-dir=/data/backup 解压后--remove-original参数会将原始的压缩文件删除
2.增量恢复
Percona XtraBackup does not support using the same incremental backup directory to prepare two copies of backup. Do not run --prepare with the same incremental backup directory (the value of –incremental-dir) more than once.
--apply-log-only should be used when merging the incremental backups except the last one. That’s why the previous line does not contain the --apply-log-only option. Even if the --apply-log-only was used on the last step, backup would still be consistent but in that case server would perform the rollback phase.
Once prepared incremental backups are the same as the full backups, and they can be restored in the same way.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 (1)prepare增量 全量prepare: xtrabackup --prepare --apply-log-only --target-dir=/data/backups/base 第一次增量prepare: xtrabackup --prepare --apply-log-only --target-dir=/data/backups/base \ --incremental-dir=/data/backups/inc1 第二次增量prepare: xtrabackup --prepare --apply-log-only --target-dir=/data/backups/base \ --incremental-dir=/data/backups/inc2 第三次增量prepare: xtrabackup --prepare --target-dir=/data/backups/base \ --incremental-dir=/data/backups/inc3 注意: 最后一次prepare不需要使用--apply-log-only参数 (2)恢复 xtrabackup --copy-back --target-dir=/data/backup (3)修改数据目录权限 chown -R mysql:mysql /var/lib/mysql (4)启动数据库 /etc/init.d/mysql start
十、部分库表备份恢复
xtrabackup supports taking partial backups when the innodb_file_per_table option is enabled. There are three ways to create partial backups:
matching the tables names with a regular expression
providing a list of table names in a file
providing a list of databases
1.备份指定的库
make sure to specify the mysql, sys, andperformance_schema databases. These databases are required when restoring the databases using xtrabackup –copy-back.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 (1)备份mydb数据库 xtrabackup --backup --databases='mysql sys performance_schema mydb' --datadir=/data/mysql --target-dir=/data/backup/mydb_bak # ll /data/backup/mydb_bak/mydb/ total 336 -rw-r----- 1 root root 114688 Jan 20 22:50 t1.ibd -rw-r----- 1 root root 114688 Jan 20 22:50 t2.ibd -rw-r----- 1 root root 114688 Jan 20 22:50 t.ibd (2)备份mydb数据库下面的t表 xtrabackup --backup --databases='mysql sys performance_schema mydb.t' --datadir=/data/mysql --target-dir=/data/backup/mydb_bak # ll /data/backup/mydb_bak/mydb/ total 112 -rw-r----- 1 root root 114688 Jan 20 22:54 t.ibd (3)文件列表形式备份数据库 # more /tmp/pxb.file sys mysql performance_schema mydb.t1 # xtrabackup --backup --databases-file=/tmp/pxb.file --datadir=/data/mysql --target-dir=/data/backup/mydb_bak # ll /data/backup/mydb_bak/mydb/ total 112 -rw-r----- 1 root root 114688 Jan 20 22:59 t1.ibd
2.备份指定的表 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 (1)备份特定的表 # xtrabackup --backup --tables="mydb.t2" --target-dir=/data/backup/mydb_bak # xtrabackup --backup --tables="mydb.*" --target-dir=/data/backup/mydb_bak # xtrabackup --backup --tables="^mydb[.]t1" --target-dir=/data/backup/mydb_bak # xtrabackup --backup --tables="^mydb[.].*" --target-dir=/data/backup/mydb_bak (2)以文件参数列表形式备份 # more /tmp/table.file mydb.t mydb.t2 # xtrabackup --backup --tables-file=/tmp/table.file --target-dir=/data/backup/mydb_bak
十一、卸载XtraBackup 1.yum卸载 Remember to back up any important data before uninstalling software.
Remove the XtraBackup packages:
$ sudo yum remove percona-xtrabackup-80
To remove all configuration files and packages, run the following command:
$ sudo yum remove percona-xtrabackup-80 --remove-leaves
Remove any unused dependencies:
$ sudo yum autoremove
To verify the removal, check the version:
$ xtrabackup --version
This should return a command not found.
You must remove any remaining directories manually:
$ sudo rm -rf /var/lib/xtrabackup
You can also remove any added Percona repositories from your system manager’s configuration.
2.rpm卸载 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 # rpm -qa | grep percona percona-xtrabackup-80-8.0.34-29.1.el7.x86_64 # rpm -ev percona-xtrabackup-80-8.0.34-29.1.el7.x86_64 Preparing packages... percona-xtrabackup-80-8.0.34-29.1.el7.x86_64 # xtrabackup --version -bash: /usr/bin/xtrabackup: No such file or directory ---卸载相关依赖包 # rpm -qa|grep zstd zstd-1.5.5-1.el7.x86_64 # rpm -ev zstd-1.5.5-1.el7.x86_64 libev-4.15-7.el7.x86_64 perl-DBD-MySQL perl-Digest perl-Digest-MD5