原來的數據使用的是MySQL4.1,大概有800M左右。使用 mysqldump -u username -p dbname > “filename”
導出的時候很容易死掉,而且數據也出現亂碼。后來找到一個非常好用的工具-SQLyog,它里面有數據導入導出功能,而且效率非常的高(我800M的數據導出或導入都不到5分鐘)。
下面來說說整個的過程:
1. 首先打開SQLyog,創建遠程數據庫連接。
2. 然后選擇“Tools”-“Export Data As SQL Statements”,選擇數據庫和表以及保存的sql文件名,然后點擊“Export”按鈕。這樣就將數據備份到了sql文件中。如果導入的話選擇 “Tools”-“Import From SQL Statements”,然后選擇sql文件執行就可以了。
3. 如果是導入到本地的MySQL中的話只要斷開遠程數據庫連接然后創建本地連接,接下來使用導入命令就可以了。
說明幾點:
1. 導出的時候可以選擇“只導出數據庫結構”和“導出數據庫結構和數據”,另外還有許多選項,比如是否自動創建新的數據庫,是否刪除存在的表等等,可以根據自己的需要選擇。
2. 導入數據的時候可能會出現 Got a packet bigger than ‘max_allowed_packet’ bytes 的錯誤提示(在SQLyog的錯誤日志里面),這是因為MySQL默認的 max_allowed_packet 設置為 1M,增大這個參數就可以了,比如設置為8M。默認的my.ini文件中是沒有這個參數的,可以自行添加。
3. SQLyog 的官方地址為:http://www.webyog.com/
4. 最后補充幾點點有些題外的問題,一個是使用SQLlog直接查看數據的時候顯示的是亂碼,這個是沒有關系的,僅僅是軟件顯示的時候編碼不對而已,解決的方法跟MySQL-Front類似,具體看 MySQL-Front查看中文數據出現亂碼的解決方法;另外一個就是使用SQLyog創建用戶的時候如果使用PHP連接的時候會出現“Client does not support authentication protocol requested by server…”的提示,這是因為PHP連接數據庫還是使用的MySQL4.1以前的方式,所以還需要執行下面的SQL腳本一下(這點跟在 PHPMyAdmin中是類似的):
-
set
password
for
username
@
localhost
=
old_password
(
'
yourPassword
'
)
;
-
flush
?
privileges
;
參考資料:
MySQL比較好的數據備份方式
http://www.kuaiyigang.com/post/66.htm
轉載鏈接:http://www.javatang.com/archives/2006/11/14/473383.html