Linux 下MySQL的導出與導入操作

g2md 9年前發布 | 10K 次閱讀 MySQL 數據庫服務器

一,數據庫的備份與導入

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
簡單吧,我覺得挺簡單的。

 本文由用戶 g2md 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!