最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Mysql中文亂碼以及導(dǎo)出為sql語(yǔ)句和Excel問(wèn)題解決方法[圖文]

 更新時(shí)間:2013年04月01日 14:16:14   作者:  
這幾天基于Heritrix寫(xiě)了一個(gè)爬蟲(chóng),用到mysql,在導(dǎo)入導(dǎo)出數(shù)據(jù)時(shí),遇到一些亂碼問(wèn)題,好不容易解決了,記錄一下,以備查看

一、導(dǎo)出數(shù)據(jù)。

先說(shuō)明一下自己的環(huán)境:Mac OS X 10.8.3, MySQL Community Server 5.6.10, MySQL Workbench 5.2.47。

我想把本機(jī)數(shù)據(jù)庫(kù)內(nèi)的數(shù)據(jù)遷移到另一臺(tái)機(jī)器上,于是使用Workbench中自帶的import/export功能,其實(shí)就是調(diào)用mysqldump。不幸的是,出現(xiàn)了版本不一致的錯(cuò)誤。

錯(cuò)誤沒(méi)治了,最終找到解決方案,可以指定mysql的mysqldump,路徑為:/usr/local/mysql/bin/mysqldump,這樣是把數(shù)據(jù)導(dǎo)出為sql語(yǔ)句的insert語(yǔ)句。

由于需要是把數(shù)據(jù)導(dǎo)出為excel,所以通過(guò)mysql控制臺(tái)使用select語(yǔ)句把數(shù)據(jù)導(dǎo)出到excel文件中。

下面先介紹怎么導(dǎo)出為excel文件,然后介紹怎么導(dǎo)出為insert語(yǔ)句。

1、通過(guò)終端操作。

1 cd /usr/local/mysql/bin/

2、到達(dá)bin目錄后,可以ls -l命令看看當(dāng)前目錄有哪些程序可以用,這里先用mysql,命令格式為:

mysql -h主機(jī)IP -u用戶名 -p密碼

如:

1 ./mysql -hlocalhost -uroot -p123456

注意前面加的"./"。

這時(shí)就進(jìn)入mysql命令控制臺(tái),終端上顯示為:

3、然后通過(guò)show databases命令查看當(dāng)前的所有數(shù)據(jù)庫(kù),使用use命令選擇進(jìn)入某個(gè)數(shù)據(jù)庫(kù),注意每個(gè)命令都要以英文分號(hào)“;”結(jié)束。

4、使用sql語(yǔ)句導(dǎo)出需要的數(shù)據(jù),sql語(yǔ)句不限于單個(gè)表的查詢。由于我的數(shù)據(jù)庫(kù)編碼是utf8格式,而office默認(rèn)的編碼則是gb2312,所以當(dāng)某個(gè)字段中包含中文時(shí),導(dǎo)出到excel后,中文內(nèi)容是會(huì)亂碼的,此時(shí)需要convert轉(zhuǎn)換編碼,具體使用方式:

我試著把文件保存到桌面,但始終提示沒(méi)有權(quán)限,應(yīng)該是和用戶有關(guān)吧,無(wú)視了。當(dāng)使用“./”這個(gè)路徑保存時(shí),實(shí)際是保存到了/usr/local/mysql/data下面。打開(kāi)看看,喲西,不亂碼了。

5、下面是把數(shù)據(jù)導(dǎo)出為sql的insert語(yǔ)句。

使用mysqldump命令,可以指定是單個(gè)表還是整個(gè)數(shù)據(jù)庫(kù)導(dǎo)出。

打開(kāi)終端,定位到/usr/local/mysql/bin,使用這個(gè)目錄下的mysqldump。

導(dǎo)出單個(gè)表:

命令格式為:

mysqldump -u用戶名 -p密碼 -h主機(jī)地址 數(shù)據(jù)庫(kù)名 表名 > 導(dǎo)出文件存儲(chǔ)路徑

例如:

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

其中用到了幾個(gè)參數(shù),簡(jiǎn)單說(shuō)明一下:

-t:等同于--no-create-info,只導(dǎo)出數(shù)據(jù),而不添加CREATE TABLE 語(yǔ)句。默認(rèn)導(dǎo)出的文件中也有create table語(yǔ)句。

--extended-insert:使用具有多個(gè)VALUES列的INSERT語(yǔ)法,也就是傳說(shuō)中一次插入多條數(shù)據(jù)的INSERT句式。這樣使導(dǎo)出文件更小,并加速導(dǎo)入時(shí)的速度,但是有可能sql語(yǔ)句會(huì)有長(zhǎng)度限制,所以我并不推薦此種方式,比如我某個(gè)表中有500W條數(shù)據(jù),難保能用一條insert語(yǔ)句可以執(zhí)行完畢。此選項(xiàng)默認(rèn)為打開(kāi)狀態(tài),把他置為false,就是一條數(shù)據(jù)一個(gè)insert語(yǔ)句了。

--default-character-set:設(shè)置默認(rèn)字符集,由于我的數(shù)據(jù)庫(kù)和表均是設(shè)定為utf8編碼格式,當(dāng)不設(shè)置此選項(xiàng)時(shí),導(dǎo)出的中文是亂碼,奇怪的是官方說(shuō)明中,說(shuō)這個(gè)選項(xiàng)的默認(rèn)值是utf8,表示不解。

導(dǎo)出整個(gè)數(shù)據(jù)庫(kù):

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

二、導(dǎo)入數(shù)據(jù)。

有導(dǎo)出就有導(dǎo)入。上面第5步導(dǎo)出的sql文件,可以直接在mysql workbench中執(zhí)行,也可以使用mysqldump導(dǎo)入,這里說(shuō)明一下如何使用mysqldump導(dǎo)入:

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

三、關(guān)于java連接mysql寫(xiě)入中文亂碼。

關(guān)于這個(gè)中文亂碼問(wèn)題,著實(shí)折騰了我好久好久。一開(kāi)始就百度谷歌bing,網(wǎng)上大多復(fù)制粘貼的答案,在這里記錄一下自己的情況,希望同路人不再走彎路。

其實(shí)我的修改很簡(jiǎn)單,把數(shù)據(jù)庫(kù)的編碼改為utf-8,在新建表時(shí),把表的默認(rèn)編碼也改為utf-8,就可以了。就這么個(gè)小小的改動(dòng),讓我足足折騰了一個(gè)通宵,表示有解決問(wèn)題強(qiáng)迫癥,問(wèn)題不解決真的睡不著,唉~~~

四、總結(jié)。

似乎很多領(lǐng)導(dǎo)做報(bào)告都喜歡加個(gè)總結(jié),說(shuō)上一堆廢話,雖然回回都聽(tīng)不懂,但感覺(jué)很厲害的樣子。于是我也加一個(gè)總結(jié):中文亂碼真特么折騰人,這些年跟你斗爭(zhēng)了好多回了,好了,總結(jié)完畢。

相關(guān)文章

  • mysql通過(guò)my.cnf修改默認(rèn)字符集為utf-8的方法和注意事項(xiàng)

    mysql通過(guò)my.cnf修改默認(rèn)字符集為utf-8的方法和注意事項(xiàng)

    本文主要給大家介紹mysql通過(guò)my.cnf修改默認(rèn)字符集為utf-8的方法,當(dāng)然你也可以設(shè)置成別的,國(guó)際點(diǎn)還是utf-8好,以及在修改過(guò)程中要注意的一些事項(xiàng),有需要的朋友們可以參考借鑒。
    2016-09-09
  • sql server自動(dòng)編號(hào)的三種方法

    sql server自動(dòng)編號(hào)的三種方法

    自增列是最簡(jiǎn)單和常見(jiàn)的方法,適用于大多數(shù)情況,本文介紹了SQL Server中三種常見(jiàn)的自動(dòng)編號(hào)方法:自增列、序列和觸發(fā)器,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-10-10
  • 使用YUM在Linux(CentOS 7)下安裝mysql 5.7.18的教程詳解

    使用YUM在Linux(CentOS 7)下安裝mysql 5.7.18的教程詳解

    這篇文章主要介紹了使用YUM在Linux(CentOS 7)下安裝mysql 5.7.18的教程詳解,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-05-05
  • 讀取mysql一個(gè)庫(kù)下面的所有的表table

    讀取mysql一個(gè)庫(kù)下面的所有的表table

    本文給大家分享的是如何使用php實(shí)現(xiàn)讀取mysql一個(gè)庫(kù)下面的所有的表table的代碼,有需要的小伙伴可以參考下
    2016-12-12
  • 為什么在MySQL中不建議使用UTF-8

    為什么在MySQL中不建議使用UTF-8

    在本篇文章里小編給大家分享了一篇關(guān)于MySQL中不要使用UTF-8的相關(guān)文章,有興趣的朋友們可以閱讀參考下。
    2020-12-12
  • MySQL8.0 鎖等待排查的問(wèn)題解決

    MySQL8.0 鎖等待排查的問(wèn)題解決

    MySQL 5.7 一些鎖監(jiān)控表,在 8.0 都發(fā)生了變化,本文主要介紹了MySQL8.0如何排查鎖等待問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-10-10
  • Mac 將mysql路徑加入環(huán)境變量的方法

    Mac 將mysql路徑加入環(huán)境變量的方法

    這篇文章主要介紹了Mac如何將mysql路徑加入環(huán)境變量,有需要的朋友好按照下面的步驟操作即可
    2014-07-07
  • MySQL查詢重寫(xiě)插件的使用

    MySQL查詢重寫(xiě)插件的使用

    這篇文章主要介紹了MySQL查詢重寫(xiě)插件的使用,幫助大家更好的理解和維護(hù)數(shù)據(jù)庫(kù),感興趣的朋友可以了解下
    2020-11-11
  • 重裝mysql時(shí)3306端口被占用的解決方法

    重裝mysql時(shí)3306端口被占用的解決方法

    如果在安裝mysql中出現(xiàn)3306端口不能使用,已經(jīng)被占用的過(guò)程,則需要將該端口號(hào)的進(jìn)程釋放即可,所以本文給大家介紹了重裝mysql時(shí)3306端口被占用的解決方法,需要的朋友可以參考下
    2024-02-02
  • MySQL深入淺出精講觸發(fā)器用法

    MySQL深入淺出精講觸發(fā)器用法

    觸發(fā)器是SQLserver提供給程序員和數(shù)據(jù)分析員來(lái)保證數(shù)據(jù)完整性的一種方法,它是與表事件相關(guān)的特殊的存儲(chǔ)過(guò)程,事件是在 MySQL 5.1后引入的,有點(diǎn)類似操作系統(tǒng)的計(jì)劃任務(wù),但是周期性任務(wù)是內(nèi)置在MySQL服務(wù)端執(zhí)行的
    2022-08-08

最新評(píng)論

通州市| 贵州省| 玛多县| 布尔津县| 遂溪县| 大港区| 开江县| 德阳市| 陆河县| 成武县| 凌源市| 抚宁县| 尚义县| 乐山市| 上林县| 长春市| 仁怀市| 罗山县| 通道| 富蕴县| 凤冈县| 乡宁县| 越西县| 太谷县| 泸州市| 宣化县| 余干县| 香格里拉县| 安阳市| 浪卡子县| 揭阳市| 深水埗区| 沂南县| 九寨沟县| 镇宁| 奉贤区| 衡东县| 盐津县| 安塞县| 唐山市| 新巴尔虎左旗|