初次發帖,沒技術含量,勿噴。
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文件看最後幾行
會有錯誤的記錄的。