如何導(dǎo)入導(dǎo)出MySQL數(shù)據(jù)庫
1. 概述
MySQL數(shù)據(jù)庫的導(dǎo)入,有兩種方法: 1) 先導(dǎo)出數(shù)據(jù)庫SQL腳本,再導(dǎo)入; 2) 直接拷貝數(shù)據(jù)庫目錄和文件。 在不同操作系統(tǒng)或MySQL版本情況下,直接拷貝文件的方法可能會(huì)有不兼容的情況發(fā)生。 所以一般推薦用SQL腳本形式導(dǎo)入。下面分別介紹兩種方法。 2. 方法一 SQL腳本形式 操作步驟如下: 2.1. 導(dǎo)出SQL腳本 在原數(shù)據(jù)庫服務(wù)器上,可以用phpMyAdmin工具,或者mysqldump(mysqldump命令位于mysql/bin/目錄中)命令行,導(dǎo)出SQL腳本。 2.1.1 用phpMyAdmin工具 導(dǎo)出選項(xiàng)中,選擇導(dǎo)出“結(jié)構(gòu)”和“數(shù)據(jù)”,不要添加“Drop DATABASE”和“Drop TABLE”選項(xiàng)。 選中“另存為文件”選項(xiàng),如果數(shù)據(jù)比較多,可以選中“gzipped”選項(xiàng)。 將導(dǎo)出的SQL文件保存下來。 2.1.2 用mysqldump命令行 命令格式 mysqldump -u用戶名 -p 數(shù)據(jù)庫名 > 數(shù)據(jù)庫名.sql 范例: mysqldump -uroot -p abc > abc.sql (導(dǎo)出數(shù)據(jù)庫abc到abc.sql文件) 提示輸入密碼時(shí),輸入該數(shù)據(jù)庫用戶名的密碼。 2.2. 創(chuàng)建空的數(shù)據(jù)庫 通過主控界面/控制面板,創(chuàng)建一個(gè)數(shù)據(jù)庫。假設(shè)數(shù)據(jù)庫名為abc,數(shù)據(jù)庫全權(quán)用戶為abc_f。 2.3. 將SQL腳本導(dǎo)入執(zhí)行 同樣是兩種方法,一種用phpMyAdmin(mysql數(shù)據(jù)庫管理)工具,或者mysql命令行。 2.3.1 用phpMyAdmin工具 從控制面板,選擇創(chuàng)建的空數(shù)據(jù)庫,點(diǎn)“管理”,進(jìn)入管理工具頁面。 在"SQL"菜單中,瀏覽選擇剛才導(dǎo)出的SQL文件,點(diǎn)擊“執(zhí)行”以上載并執(zhí)行。 注意:phpMyAdmin對(duì)上載的文件大小有限制,php本身對(duì)上載文件大小也有限制,如果原始sql文件 比較大,可以先用gzip對(duì)它進(jìn)行壓縮,對(duì)于sql文件這樣的文本文件,可獲得1:5或更高的壓縮率。 gzip使用方法: # gzip xxxxx.sql 得到 xxxxx.sql.gz文件。 2.3.2 用mysql命令行 命令格式 mysql -u用戶名 -p 數(shù)據(jù)庫名 < 數(shù)據(jù)庫名.sql 范例: mysql -uabc_f -p abc < abc.sql (導(dǎo)入數(shù)據(jù)庫abc從abc.sql文件) 提示輸入密碼時(shí),輸入該數(shù)據(jù)庫用戶名的密碼。 3 方法二 直接拷貝 如果數(shù)據(jù)庫比較大,可以考慮用直接拷貝的方法,但不同版本和操作系統(tǒng)之間可能不兼容,要慎用。 3.1 準(zhǔn)備原始文件 用tar打包為一個(gè)文件 3.2 創(chuàng)建空數(shù)據(jù)庫 3.3 解壓 在臨時(shí)目錄中解壓,如: cd /tmp tar zxf mydb.tar.gz 3.4 拷貝 將解壓后的數(shù)據(jù)庫文件拷貝到相關(guān)目錄 cd mydb/ cp * /var/lib/mysql/mydb/ 對(duì)于FreeBSD: cp * /var/db/mysql/mydb/ 3.5 權(quán)限設(shè)置 將拷貝過去的文件的屬主改為mysql:mysql,權(quán)限改為660 chown mysql:mysql /var/lib/mysql/mydb/* chmod 660 /var/lib/mysql/mydb/* |
|