尝试使用 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 运行它
答案1
你的命令有拼写错误。命令
mkdir -p /mnt/data/backup/mariadb
chown -R mysql:mysql /mnt/data/backup/mariadb
创建了目录 /mnt/data/backup/mariadb,但是命令
mariabackup --backup --target-dir=/mnt/data/backups/mariadb/ ...
要求mariabackup
写入 /mnt/data/backups/mariadb. 父目录 /mnt/data/backups该目录可能不存在。由于mariabackup
根据其手册页,仅在必要时创建目标目录本身,而不会创建通向该目录的路径,因此会出错。
答案2
感谢 @tilman schmidt @Rick James 的指导。我更正了拼写错误和路径,还删除了 mariadb 文件夹,即 /mnt/data/backup/玛丽亚数据库
并再次运行该命令,它成功运行。
mariabackup --backup --target-dir=/mnt/data/backup/mariadb/ --user=root --password=xxxxxxxx