初次发帖,没技术含量,勿喷。
mysql
wget到innobackupex的rpm包,安装好。
linux
innobackupex版本V1.5.1,mysql版本5.1.61sql
拿到一个2014-2-17.tar.gz的DB压缩包,先解压数据库
tar -zxf 2014-2-17.tar.gzsocket
新建一个空目录:mkdir ~/mysql/data
spa
从/etc目录下复制一个my.cnf到~/mysql/data目录下,cp /etc/my.cnf ~/mysql/dataserver
权限的问题我就很少说了,用过linux你们都会。get
而后修改拷贝过来的my.cnf,将datadir=~/mysql/data,socket=~/mysql/data/mysql.sockit
而后到数据备份目录下找到xtrabackup.logfile,这个文件是还原数据的依据。innodb
查看一下backup-my.cnf,将里面的一些innodb的默认参数设置也复制粘贴到~/mysql/data/my.cnf中、
如今~/mysql/data/my.cnf中的内容应该是以下:
[mysqld]
datadir=~/mysql/data
socket=~/mysql/data/mysql.sock
#[mysql.server]
user=mysql
#basedir=~/mysql/data
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
innodb_data_file_path=ibdata1:10M:autoextend
innodb_log_files_in_group=2
innodb_log_file_size=5242880
#innodb_fast_checksum=0
#innodb_page_size=16384
#innodb_log_block_size=512
[mysqld_safe]
datadir=~/mysql/data
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
#[client]
#socket=/var/lib/mysql/mysql.sock
切到~/backup/2014-2-17目录下,执行数据恢复的命令
innobackupex --copy-back --defaults-file=./mysql/data/my.cnf .
这里的--copy-back的意思就是解压后存放到以./mysql/data/my.cnf默认配置的路径下。
而后就是要重建恢复后的数据库,修改mysql访问的数据库。
先停掉mysql的服务,pkill -9 mysqld或者service mysqld stop
删掉~/mysql/data下面的mysql文件夹
而后mysql_install_db --datadir=`pwd` --user=root
修改~/mysql/data的属主 chown -R mysql.mysql ~/mysql
修改my.cnf文件将socket=/var/lib/mysql/mysql.sock
修改my.cnf的权限,chmod 660 ~/mysql/data/my.cnf
而后启动你刚刚建好的数据库的服务:/usr/bin/mysqld_safe --defaults-file=my.cnf &
这里说一下,正常状况你输mysql就进入linux的数据库了,但那个是默认数据库,你会找不到你
刚刚恢复的数据。也就是说,你改了服务端客户端是不知道的,除非你修改默认访问的数据库,要修改
/etc/init.d/mysqld文件。
仍是手动启吧,要知道mysql只是封装了的mysqld_safe的命令合集。启动以后ps ax|grep mysqld就能够看到你按照
新建的数据库路径启动的服务。
输入mysql -uroot 便可进入刚刚新建的数据库。
另外告诉你们一个技巧,若是你遇到了错误,又没提示你什么错误,你能够查看/var/log/mysqld.log文件看最后几行
会有错误的记录的。