如何備份MySQL資料庫?!

方法1. 直接拷貝
備份:
#cd /
#mkdir backup
#chmod 777 backup
#
#cd /var/db/mysql
#cp -r mysql /backup (cp -r 資料庫名稱 /備份路徑) ps. -r:複製目錄 備份目錄
#cd /var/db/mysql/mysql
#cp *.* /backup/mysql ps.備份資料表
還原:直接複製回去原資料夾,並設權限為可讀可寫可執行即可

方法2. 使用mysqldump指令
當資料庫不只一個資料庫時,可使用此指令,
此法是將資料庫內的每個資料表結構及每筆資料產生的sql語句存到文字檔。
備份:

所有資料庫:
#mysqldump –user=root -p –all-databases > /backup/mysql.sql
(ps:若知道所用語系的話建議加入" –default-character-set=語系")
# mysqldump -u 帳號 -p 資料庫 > output.sql  –default-character-set=latin1

單一資料庫
#mysqladmin -u root -p flush-logs
#mysqldump databasedname -u root -p –opt > mysql.sql

還原:

所有資料庫:
#mysqldump –user=root -p < /backup/mysql.sql

單一資料庫:
# mysql databasename -u root -p < mysql.sql

方法3. 使用tar
為預防有部份資料未完全備份,故需停用資料庫
#/usr/local/etc/mysqld stop

#/sbin/service mysqld stop

#/etc/init.d/mysqld stop

備份:
#tar -zcvf mysql_backup.tar.gz mysql (將mysql整個資料夾做成壓縮檔)

復原:
#/usr/local/etc/mysqld stop
#mv mysql mysql_error
#tar zxvf mysql.tar.gz
#/usr/local/etc/mysqld start

下文截至http://blog.pixnet.net/bojack/post/3799864,並尚未整理 若建立備份時是以"–opt"或"–add-drop-table"為參數時,回存的動作是先將舊的 Table 先刪除,重建 Table 的結構後再把 Data 匯入,所以回存後,所有的資料會回到你當時備份的時間點,使用這種回存方式,MySQL 服務不需停止,也不會動到其他正在使用的 DB ,在一些提供 MySQL 服務的虛擬主機,可用這種方式作你自己的 DB 備份及回存!
另外,假如你是系統重建或是移機時,必需在新的 MySQL 內,新建一個空白 DB 後,才能夠作回存的動作,你可以用下面的指令建立:
mysql -uroot -p -e "CREATE DATABASE phpbb2"


資料轉貼於: http://www.wretch.cc/blog/disburden/9855807

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google photo

您的留言將使用 Google 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s