Согласно этому link, я выполнил эту команду для резервного копирования моей базы данных:XtraBackup выполняет только полное резервное копирование, если выполняется с супер правами пользователя
xtrabackup --backup --databases='database' --target-dir=/home/user/backups --datadir=/var/lib/mysql/
Но я получаю следующее сообщение об ошибке:
160520 02:00:54 version_check Done.
160520 02:00:54 Connecting to MySQL server host: localhost, user: root, password: set, port: 0, socket: /var/lib/mysql/mysql.sock
Using server version 5.5.44-MariaDB
xtrabackup version 2.4.2 based on MySQL server 5.7.11 Linux (x86_64) (revision id: 8e86a84)
xtrabackup: uses posix_fadvise().
xtrabackup: cd to /var/lib/mysql/
xtrabackup: open files limit requested 0, set to 1024
xtrabackup: using the following InnoDB configuration:
xtrabackup: innodb_data_home_dir = .
xtrabackup: innodb_data_file_path = ibdata1:10M:autoextend
xtrabackup: innodb_log_group_home_dir = .
xtrabackup: innodb_log_files_in_group = 2
xtrabackup: innodb_log_file_size = 5242880
InnoDB: Number of pools: 1
InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to the directory.
Я решил это, запустив ту же команду с sudo, проблема в том, что каталог резервных копий создается как root, поэтому мой пользователь не имеет доступа к этому каталогу, поэтому мне всегда приходится рекурсивно менять права собственности на этот каталог, чтобы я мог быть в состоянии прочитать его. Этот метод не очень эффективен для меня.
- Есть ли другая альтернатива для этого?
- Должен ли я всегда выполнить эту команду с помощью sudo?
Вы пытались запустить его с тем же пользователем, которому принадлежат файлы базы данных? Обычно это 'mysql'. – tadman
Что я хочу сделать, это запустить его с MY user. – VaTo
Что вы хотите и какие разрешения UNIX допускаете, могут быть разными. Предполагается, что база данных будет защищена. – tadman