xtrabackup无法连接socket和xtrabackup版本与mysql版本支持问题

本文解决XtraBackup8.0在备份MySQL时遇到的socket连接错误,并揭示其不支持MySQL5.7及以下版本的问题。通过调整socket参数和安装适配版本的XtraBackup,最终成功备份数据库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装了  xtrabackup 8.0后备份数据库报错

[root@lzl ~]# xtrabackup -uroot -poracle --backup -S=/tmp/mysql.sock -P3306 --target-dir=/data/backup 
xtrabackup: recognized server arguments: --datadir=/data/mysql 
xtrabackup: recognized client arguments: --user=root --password=* --backup=1 --socket==/tmp/mysql.sock --port=3306 --target-dir=/data/backup 
xtrabackup version 8.0.13 based on MySQL server 8.0.20 Linux (x86_64) (revision id: fdf0f4c)
200721 14:56:48  version_check Connecting to MySQL server with DSN 'dbi:mysql:;mysql_read_default_group=xtrabackup;port=3306;mysql_socket==/tmp/mysql.sock' as 'root'  (using password: YES).
Failed to connect to MySQL server: DBI connect(';mysql_read_default_group=xtrabackup;port=3306;mysql_socket==/tmp/mysql.sock','root',...) failed: Can't connect to local MySQL server through socket '=/tmp/mysql.sock' (2) at - line 1535
200721 14:56:48 Connecting to MySQL server host: localhost, user: root, password: set, port: 3306, socket: =/tmp/mysql.sock
Failed to connect to MySQL server: Can't connect to local MySQL server through socket '=/tmp/mysql.sock' (2).

 

查看我的sock是否存在,和权限是否正常

[root@lzl ~]# ls -lrt /tmp/mysql.sock
srwxrwxrwx 1 mysql mysql 0 Jul 20 10:14 /tmp/mysql.sock
[root@lzl ~]# 

没问题

 

查看my.cnf socket配置
[root@lzl ~]# cat /etc/my.cnf
[mysqld]
datadir = /data/mysql
socket = /tmp/mysql.sock
character_set_server = utf8
default-time-zone = '+08:00'
port = 3306
[mysqld_safe]
log-error=/data/mysql/mysql.log
pid-file=/data/mysql/mysqld.pid

也没问题

 

测试mysql直接登录
[root@lzl ~]# mysql -uroot -poracle 
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.20 MySQL Community Server (GPL)

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

没问题

 

最后发现:报错中的信息有两个=

mysql_socket==/tmp/mysql.sock',

把-S=中的=删掉,直接跟socket文件
[root@lzl ~]# xtrabackup -uroot -poracle --backup -S/tmp/mysql.sock -P3306 --target-dir=/data/backup --defaults-group=mysql 
xtrabackup: recognized server arguments: --datadir=/data/mysql --defaults_group=mysql 
xtrabackup: recognized client arguments: --user=root --password=* --backup=1 --socket=/tmp/mysql.sock --port=3306 --target-dir=/data/backup 
xtrabackup version 8.0.13 based on MySQL server 8.0.20 Linux (x86_64) (revision id: fdf0f4c)
200721 15:34:37  version_check Connecting to MySQL server with DSN 'dbi:mysql:;mysql_read_default_group=xtrabackup;port=3306;mysql_socket=/tmp/mysql.sock' as 'root'  (using password: YES).
200721 15:34:37  version_check Connected to MySQL server
200721 15:34:37  version_check Executing a version check against the server...
200721 15:34:37  version_check Done.
200721 15:34:37 Connecting to MySQL server host: localhost, user: root, password: set, port: 3306, socket: /tmp/mysql.sock
Error: Unsupported server version: '5.7.20'.
This version of Percona XtraBackup can only perform backups and restores against MySQL 8.0 and Percona Server 8.0
Please use Percona XtraBackup 2.4 for this database.

ok,报错不一样了,说明socket问题已解决

 

最新的报错显示8.0的xtrabackup不支持8.0以下的mysql,让我去下XtraBackup 2.4

重新下载2.4 的xtrabackup,删除8.0的xtrabackup
[root@lzl soft]# rpm -e percona-xtrabackup-80-8.0.13-1.el6.x86_64
[root@lzl soft]# xtrabackup
-bash: /usr/bin/xtrabackup: No such file or directory

删除完成

 

安装xtrabackup 2.4
[root@lzl soft]# rpm -ivh --nodeps percona-xtrabackup-24-2.4.20-1.el6.x86_64.rpm 
warning: percona-xtrabackup-24-2.4.20-1.el6.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID 8507efa5: NOKEY
Preparing...                ########################################### [100%]
   1:percona-xtrabackup-24  ########################################### [100%]


[root@lzl soft]# xtrabackup -version
xtrabackup: recognized server arguments: --datadir=/data/mysql 
xtrabackup version 2.4.20 based on MySQL server 5.7.26 Linux (x86_64) (revision id: c8b4056)

ok,低版本xtrabackup软件安装完成

 

再次尝试备份数据库

xtrabackup -uroot -poracle --backup -S/tmp/mysql.sock -P3306 --target-dir=/data/backup --defaults-group=mysql 
...
200721 16:28:26 [00]        ...done
xtrabackup: Transaction log of lsn (2667853) to (2667862) was copied.
200721 16:28:27 completed OK!

备份完成

查看备份文件

[root@lzl soft]# ls -lrt /data/backup/
total 12332
-rw-r----- 1 root root 12582912 Jul 21 16:28 ibdata1
drwxr-x--- 2 root root     4096 Jul 21 16:28 lzldb
drwxr-x--- 2 root root     4096 Jul 21 16:28 performance_schema
drwxr-x--- 2 root root    12288 Jul 21 16:28 sys
drwxr-x--- 2 root root     4096 Jul 21 16:28 mysql
-rw-r----- 1 root root     2560 Jul 21 16:28 xtrabackup_logfile
-rw-r----- 1 root root      135 Jul 21 16:28 xtrabackup_checkpoints
-rw-r----- 1 root root      324 Jul 21 16:28 ib_buffer_pool
-rw-r----- 1 root root      487 Jul 21 16:28 backup-my.cnf
-rw-r----- 1 root root      480 Jul 21 16:28 xtrabackup_info
备份成功

 

总结

1 xtrabackup备份时在指定socket时,-S不要跟=,直接-S跟目录和文件名

2 xtrabackup 8不支持mysql 5.7及以下的备份,这可能跟mysql 8.0数据字典保存方式的升级有关。总之mysql 8.0就使用xtrabackup 8,mysql 5.7及以下需要使用低版本xtrabackup,如xtrabackup 2.4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

liuzhilongDBA

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值