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