這幾天基於Heritrix寫了一個爬蟲,用到mysql,在導入導出數據時,遇到一些亂碼問題,好不容易解決了,記錄一下,以備查看。
一、導出數據。
先說明一下自己的環境:Mac OS X 10.8.3, MySQL Community Server 5.6.10, MySQL Workbench 5.2.47。
我想把本機數據庫內的數據遷移到另一台機器上,於是使用Workbench中自帶的import/export功能,其實就是調用mysqldump。不幸的是,出現了版本不一致的錯誤。
錯誤沒治了,最終找到解決方案,可以指定mysql的mysqldump,路徑為:/usr/local/mysql/bin/mysqldump,這樣是把數據導出為sql語句的insert語句。
由於需要是把數據導出為excel,所以通過mysql控制台使用select語句把數據導出到excel文件中。
下面先介紹怎麼導出為excel文件,然後介紹怎麼導出為insert語句。
1、通過終端操作。
1 cd /usr/local/mysql/bin/
2、到達bin目錄後,可以ls -l命令看看當前目錄有哪些程序可以用,這裡先用mysql,命令格式為:
mysql -h主機IP -u用戶名 -p密碼
如:
1 ./mysql -hlocalhost -uroot -p123456
注意前面加的"./"。
這時就進入mysql命令控制台,終端上顯示為:
3、然後通過show databases命令查看當前的所有數據庫,使用use命令選擇進入某個數據庫,注意每個命令都要以英文分號“;”結束。
4、使用sql語句導出需要的數據,sql語句不限於單個表的查詢。由於我的數據庫編碼是utf8格式,而office默認的編碼則是gb2312,所以當某個字段中包含中文時,導出到excel後,中文內容是會亂碼的,此時需要convert轉換編碼,具體使用方式:
我試著把文件保存到桌面,但始終提示沒有權限,應該是和用戶有關吧,無視了。當使用“./”這個路徑保存時,實際是保存到了/usr/local/mysql/data下面。打開看看,喲西,不亂碼了。