MySQL資料庫匯入匯出

polalisi發表於2007-11-06

1. 概述
MySQL資料庫的匯入,有兩種方法:
1) 先匯出資料庫SQL指令碼,再匯入;
2) 直接複製資料庫目錄和檔案。

在不同作業系統或MySQL版本情況下,直接複製檔案的方法可能會有不相容的情況發生。
所以一般推薦用SQL指令碼形式匯入。下面分別介紹兩種方法。

2. 方法一 SQL指令碼形式
操作步驟如下:
2.1. 匯出SQL指令碼
在原資料庫伺服器上,可以用phpMyAdmin工具,或者mysqldump命令列,匯出SQL指令碼。
2.1.1 用phpMyAdmin工具
匯出選項中,選擇匯出“結構”和“資料”,不要新增“DROP DATABASE”和“DROP TABLE”選項。
選中“另存為檔案”選項,如果資料比較多,可以選中“gzipped”選項。
將匯出的SQL檔案儲存下來。

2.1.2 用mysqldump命令列
命令格式
mysqldump -u使用者名稱 -p 資料庫名 > 資料庫名.sql
範例:
mysqldump -uroot -p abc > abc.sql
(匯出資料庫abc到abc.sql檔案)

提示輸入密碼時,輸入該資料庫使用者名稱的密碼。

2.2. 建立空的資料庫
透過主控介面/控制皮膚,建立一個資料庫。假設資料庫名為abc,資料庫全權使用者為abc_f。

2.3. 將SQL指令碼匯入執行
同樣是兩種方法,一種用phpMyAdmin(mysql資料庫管理)工具,或者mysql命令列。
2.3.1 用phpMyAdmin工具
從控制皮膚,選擇建立的空資料庫,點“管理”,進入管理工具頁面。
在"SQL"選單中,瀏覽選擇剛才匯出的SQL檔案,點選“執行”以上載並執行。

注意:phpMyAdmin對上載的檔案大小有限制,php本身對上載檔案大小也有限制,如果原始sql檔案
比較大,可以先用gzip對它進行壓縮,對於sql檔案這樣的文字檔案,可獲得1:5或更高的壓縮率。
gzip使用方法:
# gzip xxxxx.sql
得到
xxxxx.sql.gz檔案。

2.3.2 用mysql命令列
命令格式
mysql -u使用者名稱 -p 資料庫名 < 資料庫名.sql
範例:
mysql -uabc_f -p abc < abc.sql
(匯出資料庫abc到abc.sql檔案)

提示輸入密碼時,輸入該資料庫使用者名稱的密碼。

3 方法二 直接複製
如果資料庫比較大,可以考慮用直接複製的方法,但不同版本和作業系統之間可能不相容,要慎用。
3.1 準備原始檔案
用tar打包為一個檔案

3.2 建立空資料庫

3.3 解壓
在臨時目錄中解壓,如:
cd /tmp
tar zxf mydb.tar.gz

3.4 複製
將解壓後的資料庫檔案複製到相關目錄
cd mydb/
cp * /var/lib/mysql/mydb/

對於FreeBSD:
cp * /var/db/mysql/mydb/

3.5 許可權設定
將複製過去的檔案的屬主改為mysql:mysql,許可權改為660
chown mysql:mysql /var/lib/mysql/mydb/*
chmod 660 /var/lib/mysql/mydb/*

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10455649/viewspace-980984/,如需轉載,請註明出處,否則將追究法律責任。

相關文章