程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> Mysql中文亂碼和導出為sql語句和Excel成績處理辦法[圖文]

Mysql中文亂碼和導出為sql語句和Excel成績處理辦法[圖文]

編輯:MySQL綜合教程

Mysql中文亂碼和導出為sql語句和Excel成績處理辦法[圖文]。本站提示廣大學習愛好者:(Mysql中文亂碼和導出為sql語句和Excel成績處理辦法[圖文])文章只能為提供參考,不一定能成為您想要的結果。以下是Mysql中文亂碼和導出為sql語句和Excel成績處理辦法[圖文]正文


1、導出數據。

先解釋一下本身的情況: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上面。翻開看看,喲西,穩定碼了。

5、上面是把數據導出為sql的insert語句。

應用mysqldump敕令,可以指定是單個表照樣全部數據庫導出。

翻開終端,定位到/usr/local/mysql/bin,應用這個目次下的mysqldump。

導出單個表:

敕令格局為:

mysqldump -u用戶名 -p暗碼 -h主機地址 數據庫名 表名 > 導出文件存儲途徑

例如:

/usr/local/mysql/bin/mysqldump -uroot -p123456 -hlocalhost -t --extended-insert=false --default-character-set=utf8 SpiderBBSDB Catalog > /Users/ethan/Desktop/Catalog.sql

個中用到了幾個參數,簡略解釋一下:

-t:同等於--no-create-info,只導出數據,而不添加CREATE TABLE 語句。默許導出的文件中也有create table語句。

--extended-insert:應用具有多個VALUES列的INSERT語法,也就是傳說中一次拔出多條數據的INSERT句式。如許使導出文件更小,並加快導入時的速度,然則有能夠sql語句會有長度限制,所以我其實不推舉此種方法,好比我某個表中有500W條數據,難保能用一條insert語句可以履行終了。此選項默許為翻開狀況,把他置為false,就是一條數據一個insert語句了。

--default-character-set:設置默許字符集,因為我的數據庫和表均是設定為utf8編碼格局,當不設置此選項時,導出的中文是亂碼,奇異的是官方解釋中,說這個選項的默許值是utf8,表現不解。

導出全部數據庫:

/usr/local/mysql/bin/mysqldump -uroot -p123456 -hlocalhost -t --extended-insert=false --default-character-set=utf8 SpiderBBSDB > /Users/ethan/Desktop/SpiderBBSDB.sql

2、導入數據。

有導出就有導入。下面第5步導出的sql文件,可以直接在mysql workbench中履行,也能夠應用mysqldump導入,這裡解釋一下若何應用mysqldump導入:

/usr/local/mysql/bin/mysqldump -uroot -p123456 -hlocalhost --default-character-set=utf8 SpiderBBSDB < /Users/ethan/Desktop/Catalog.sql

3、關於java銜接mysql寫入中文亂碼。

關於這個中文亂碼成績,實在折騰了我很久很久。一開端就百度谷歌bing,網上年夜多復制粘貼的謎底,在這裡記載一下本身的情形,願望同路人不再走彎路。

其實我的修正很簡略,把數據庫的編碼改成utf-8,在新建表時,把表的默許編碼也改成utf-8,便可以了。就這麼個小小的修改,讓我足足折騰了一個徹夜,表現有處理成績強制症,成績不處理真的睡不著,唉~~~

4、總結。

仿佛許多引導做申報都愛好加個總結,說上一堆空話,固然回回都聽不懂,但感到很凶猛的模樣。因而我也加一個總結:中文亂碼真特麼折騰人,這些年跟你奮斗了很多多少回了,好了,總結終了。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved