標籤:
一,資料庫的備份與匯入
1),資料庫的備份
1.匯出整個資料庫
mysqldump -u 使用者名稱 -p 資料庫名 > 匯出的檔案名稱
例:mysqldump -u dbadmin -p myblog > /home/zhangy/blog/database_bak/myblog.sql
2.匯出一個表
mysqldump -u 使用者名稱 -p 資料庫名 表名> 匯出的檔案名稱
例:mysqldump -u dbadmin -p myblog wp_users> /home/zhangy/blog/database_bak/blog_users.sql
3.匯出一個資料庫結構
mysqldump -u dbadmin -p -d --add-drop-table myblog > /home/zhangy/blog/database_bak/blog_struc.sql
說明:-d 沒有資料 --add-drop-table 在每個create語句之前增加一個drop table
4.匯出資料庫一個表結構
mysqldump -u dbadmin -p -d --add-drop-table myblog wp_users> /home/zhangy/blog/database_bak/blog_users_struc.sql
說明:-d 沒有資料 --add-drop-table 在每個create語句之前增加一個drop table
2),資料庫的匯入
1,用 mysqldump 備份出來的檔案是一個可以直接倒入的 SQL 指令碼,有兩種方法可以將資料匯入。
例如:
#/usr/local/mysql/bin/mysql -u root -p ***** myblog < /home/zhangy/blog/database_bak/myblog.sql
這種方法,我以前經常現在很少用了,因為很容易產生亂碼,因為:
a,匯出資料庫時,你如果忘了設定匯出字元集的話,在匯入的時候,就有可能會出問題.
b,假如,你匯出時設定匯出時設定了utf8的編碼,但是你又把你的資料庫現在的字元集改成了gb2312的.這樣又會亂碼。
2,用 source 語句
例如:
mysql -u dbadmin -p
use myblog;
set names utf8; #這裡的字元集根你的將要匯入的資料庫的字元集一至。
source /home/zhangy/blog/database_bak/myblog.sql;
二,檔案的備份
1),檔案的備份
你可以用tar命令來打包壓縮你要備份的檔案,然後用shell來讓它定期備份。不過沒有cpio來的方便
cpio命令參數:
| -i |
從標準輸入中讀取檔案。 |
| -o |
從標準輸入中讀出路徑名清單並且拷貝檔案到標準輸出中。 |
| -p |
從標準輸入中讀出檔案路徑名清單。 |
| -c |
以 ASCII 字元的形式讀寫頭資訊,便於移植。。 |
| -d |
建立需要的目錄 |
| -u |
無條件的複製(通常,舊檔案不能用相同的檔案名稱替代新檔案)。 |
| -m |
保留先前檔案的修改時間。這個選項在拷貝目錄的時候不起作用。 |
| -v |
詳細的,列出檔案名稱列表。 |
[root@BlackGhost zhangy]# find /home/zhangy/test -type f|cpio -o > /home/zhangy/test.cpio
31 blocks
[root@BlackGhost zhangy]# ls -al |grep cpio
-rw-r--r-- 1 root root 15872 Feb 8 15:10 test.cpio
2),檔案的還原
cd /home/zhangy/test
ls
aaa.cpio test.cpio test.tar.gz
rm *.* #刪除該檔案夾下面的所以測試檔案
ls
cpio -i < /home/zhangy/test.cpio #匯入以前的備份檔案
31 blocks
ls
aaa.cpio test.cpio test.tar.gz
簡單吧,我覺得挺簡單的。
Linux 下MySQL的匯出與匯入操作