使用Xtrabackup恢复mysql数据时候报错:Original data directory is not empty! at /usr/bin/innobackupex line 568.

网上普遍只说了引起这种想象的两种原因,还有第三种原因是我遇到的:

1.恢复备份文件要保证mysql的data目录为空,否则会报错,解决办法:

 # /etc/init.d/mysqld stop # cd /usr/local/mysql # cp -rf data{,.bak} # rm -rf ./data/*

2.data目录是空的,原因是恢复数据时候没有指定my.cnf的路径,解决办法:

innobackupex --defaults-file=/etc/my.cnf --user=root --password=123123 --copy-back /opt/backupdb/2016-04-25_15-54-13/

注意:要把–defaults-file=/etc/my.cnf放在命令的最前面,否则也会报错,让你把这个参数放到最前面

3.以上都没问题,可能是因为my.cnf中没有指定data目录的路径造成的,解决办法:

# vi /etc/my.cnf [mysqld] datadir = /use/local/mysql/data