尝试使用 mariabackup 备份我们所有的数据库。首先创建的备份目录为
mkdir -p /mnt/data/backup/mariadb
chown -R mysql:mysql /mnt/data/backup/mariadb
并继续做备份
# mariabackup --backup --target-dir=/mnt/data/backups/mariadb/ --user=root --password=xxxxxxxx
[00] 2022-02-06 11:28:46 Connecting to MySQL server host: localhost, user: root, password: set, port: not set, socket: /mnt/data/mysql/mysql.sock
[00] 2022-02-06 11:28:46 Using server version 10.3.28-MariaDB
mariabackup based on MariaDB server 10.3.28-MariaDB Linux (x86_64)
[00] 2022-02-06 11:28:46 uses posix_fadvise().
[00] 2022-02-06 11:28:46 cd to /mnt/data/mysql/
[00] 2022-02-06 11:28:46 open files limit requested 0, set to 1024
[00] 2022-02-06 11:28:46 mariabackup: using the following InnoDB configuration:
[00] 2022-02-06 11:28:46 innodb_data_home_dir =
[00] 2022-02-06 11:28:46 innodb_data_file_path = ibdata1:12M:autoextend
[00] 2022-02-06 11:28:46 innodb_log_group_home_dir = ./
[00] 2022-02-06 11:28:46 InnoDB: Using Linux native AIO
2022-02-06 11:28:46 0 [Note] InnoDB: Number of pools: 1
[00] 2022-02-06 11:28:46 Error: cannot mkdir 2: /mnt/data/backups/mariadb/
尝试了护目镜和各种选项它没有工作所以最后尝试没有 --target-directory 选项并再次进行备份,它成功运行并得到了这个
# ls -ld /mnt/data/backup
drwxr-xr-x 3 mysql mysql 21 Feb 6 11:41 /mnt/data/backup
# pwd
/mnt/data/mysql
# ll
total 8
drwxr-xr-x 3 mysql mysql 21 Feb 6 11:41 backup
drwxr-xr-x 27 mysql mysql 4096 Feb 4 19:07 mysql
drwx------ 27 root root 4096 Feb 6 11:22 xtrabackup_backupfiles
我做错了什么或如何使用 ----target-directory 运行它
您的命令中有错字。命令
创建了目录 /mnt/data/backup/mariadb 但命令
要求
mariabackup
写入 /mnt/data/backup s /mariadb。该目录的父目录 /mnt/data/backup可能不存在。由于mariabackup
根据其手册页仅在必要时创建目标目录本身,而不是通向它的路径,因此它出错了。感谢@tilman schmidt @Rick James 的指导。我更正了我的拼写错误和路径,还删除了 mariadb 文件夹,即 /mnt/data/backup/ mariadb
并再次运行该命令,它成功运行。