《MYSQL數據庫Mysql中文亂碼以及導出為sql語句和Excel問題解決方法[圖文]》要點:
本文介紹了MYSQL數據庫Mysql中文亂碼以及導出為sql語句和Excel問題解決方法[圖文],希望對您有用。如果有疑問,可以聯系我們。
先說明一下自己的環境:Mac OS X 10.8.3, MySQL Community Server 5.6.10, MySQL Workbench 5.2.47.MYSQL入門
我想把本機數據庫內的數據遷移到另一臺機器上,于是使用Workbench中自帶的import/export功能,其實就是調用mysqldump.不幸的是,出現了版本不一致的錯誤.MYSQL入門
MYSQL入門
MYSQL入門
MYSQL入門
MYSQL入門
錯誤沒治了,最終找到辦理方案,可以指定mysql的mysqldump,路徑為:/usr/local/mysql/bin/mysqldump,這樣是把數據導出為sql語句的insert語句.MYSQL入門
由于需要是把數據導出為excel,所以通過mysql控制臺使用select語句把數據導出到excel文件中.MYSQL入門
下面先介紹怎么導出為excel文件,然后介紹怎么導出為insert語句.MYSQL入門
1、通過終端操作.MYSQL入門
1 cd /usr/local/mysql/bin/2、到達bin目錄后,可以ls -l命令看看當前目錄有哪些程序可以用,這里先用mysql,命令格式為:MYSQL入門
mysql -h主機IP -u用戶名 -p暗碼MYSQL入門
如:MYSQL入門
1 ./mysql -hlocalhost -uroot -p123456注意前面加的"./".MYSQL入門
這時就進入mysql命令控制臺,終端上顯示為:MYSQL入門
MYSQL入門
3、然后通過show databases命令查看當前的所有數據庫,使用use命令選擇進入某個數據庫,注意每個命令都要以英文分號“;”結束.MYSQL入門
MYSQL入門
4、使用sql語句導出需要的數據,sql語句不限于單個表的查詢.由于我的數據庫編碼是utf8格式,而office默認的編碼則是gb2312,所以當某個字段中包括中文時,導出到excel后,中文內容是會亂碼的,此時需要convert轉換編碼,具體使用方式:MYSQL入門
MYSQL入門
我試著把文件保留到桌面,但始終提示沒有權限,應該是和用戶有關吧,無視了.當使用“./”這個路徑保留時,實際是保留到了/usr/local/mysql/data下面.打開看看,喲西,不亂碼了.MYSQL入門
5、下面是把數據導出為sql的insert語句.MYSQL入門
使用mysqldump命令,可以指定是單個表還是整個數據庫導出.MYSQL入門
打開終端,定位到/usr/local/mysql/bin,使用這個目錄下的mysqldump.MYSQL入門
導出單個表:MYSQL入門
命令格式為:MYSQL入門
mysqldump -u用戶名 -p暗碼 -h主機地址 數據庫名 表名 >?導出文件存儲路徑MYSQL入門
例如:MYSQL入門
/usr/local/mysql/bin/mysqldump -uroot -p123456 -hlocalhost -t --extended-insert=false --default-character-set=utf8 SpiderBBSDB Catalog > /Users/ethan/Desktop/Catalog.sql其中用到了幾個參數,簡單說明一下:MYSQL入門
-t:等同于--no-create-info,只導出數據,而不添加CREATE?TABLE?語句.默認導出的文件中也有create table語句.MYSQL入門
--extended-insert:使用具有多個VALUES列的INSERT語法,也就是傳說中一次插入多條數據的INSERT句式.這樣使導出文件更小,并加速導入時的速度,但是有可能sql語句會有長度限制,所以我并不保舉此種方式,比如我某個表中有500W條數據,難保能用一條insert語句可以執行完畢.此選項默認為打開狀態,把他置為false,就是一條數據一個insert語句了.MYSQL入門
--default-character-set:設置默認字符集,由于我的數據庫和表均是設定為utf8編碼格式,當不設置此選項時,導出的中文是亂碼,奇怪的是官方說明中,說這個選項的默認值是utf8,表示不解.MYSQL入門
導出整個數據庫:MYSQL入門
/usr/local/mysql/bin/mysqldump -uroot -p123456 -hlocalhost -t --extended-insert=false --default-character-set=utf8 SpiderBBSDB > /Users/ethan/Desktop/SpiderBBSDB.sql二、導入數據. MYSQL入門
有導出就有導入.上面第5步導出的sql文件,可以直接在mysql workbench中執行,也可以使用mysqldump導入,這里說明一下如何使用mysqldump導入:MYSQL入門
/usr/local/mysql/bin/mysqldump -uroot -p123456 -hlocalhost --default-character-set=utf8 SpiderBBSDB < /Users/ethan/Desktop/Catalog.sql三、關于java連接mysql寫入中文亂碼. MYSQL入門
關于這個中文亂碼問題,著實折騰了我好久好久.一開始就百度谷歌bing,網上大多復制粘貼的答案,在這里記錄一下自己的情況,希望同路人不再走彎路.MYSQL入門
其實我的修改很簡單,把數據庫的編碼改為utf-8,在新建表時,把表的默認編碼也改為utf-8,就可以了.就這么個小小的改動,讓我足足折騰了一個通宵,表示有辦理問題強迫癥,問題不辦理真的睡不著,唉~~~MYSQL入門
MYSQL入門
MYSQL入門
MYSQL入門
四、總結. MYSQL入門
似乎很多領導做申報都喜歡加個總結,說上一堆廢話,雖然回回都聽不懂,但感覺很厲害的樣子.于是我也加一個總結:中文亂碼真特么折騰人,這些年跟你斗爭了好多回了,好了,總結完畢.MYSQL入門
歡迎參與《MYSQL數據庫Mysql中文亂碼以及導出為sql語句和Excel問題解決方法[圖文]》討論,分享您的想法,維易PHP學院為您提供專業教程。
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/9914.html