解決MySQL中文亂碼以及版本不一致問題_第1頁
解決MySQL中文亂碼以及版本不一致問題_第2頁
解決MySQL中文亂碼以及版本不一致問題_第3頁
解決MySQL中文亂碼以及版本不一致問題_第4頁
解決MySQL中文亂碼以及版本不一致問題_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

解決MySQL中文亂碼以及版本不一致問題一、導出數(shù)據(jù)先說明一下自己的環(huán)境:MacOSX10.8.3,MySQLCommunityServer5.6.10,MySQLWorkbench5.2.47。我想把本機數(shù)據(jù)庫內(nèi)的數(shù)據(jù)遷移到另一臺機器上,于是使用Workbench中自帶的import/export功能,其實就是調(diào)用mysqldump。不幸的是,出現(xiàn)了版本不一致的錯誤。

rnysqldumpVersionMismatchZApplicatior5yMySQLWorlcbencJi.spp/Contend/MacO5/mysqldumpiiversionS.5.24.buttheMy5QE_5^rvertobedumpedh^sv&r^icn5.&.L3Becausetheversionofmy&qldump也oldertha-nthetejver.somef-eaturesmayriotbebatked口口口「「口erSy.ItisreccimmendedyouupgradeyourlocalM/5Q.Lcli-entpr<jgramsrinciudmgmysqIcumptoa.versionequ-altoornew^rtharitiiatofthstargetserver.TliepattitothedumptcwlmustIhenb?setinPreferencei->Administrator->Pathtom^qldumpTxl;Carce!;Cc?nt3nueAnyway錯誤沒治了,最終找到解決方案,可以指定mysql的mysqldump,路徑為:/usr/local/mysql/bin/mysqldump,這樣是把數(shù)據(jù)導出為sql語句的insert語句。由于需要是把數(shù)據(jù)導出為excel,所以通過mysql控制臺使用select語句把數(shù)據(jù)導出到excel文件中。下面先介紹怎么導出為excel文件,然后介紹怎么導出為insert語句。1、通過終端操作。cd/usr/local/mysql/bin/2、到達bin目錄后,可以ls-l命令看看當前目錄有哪些程序可以用,這里先用mysql,命令格式為:mysql-h主機IP-u用戶名-p密碼如:

注意前面加的這時就進入mysql命令控制臺,終端上顯示為:mysqlj|Lastlogin:FrlHar2223:58:53onttyseeiMacintosh:-* cd/usr/lccal/m/sql/bin mysqlj|Lastlogin:FrlHar2223:58:53onttyseeiMacintosh:-* cd/usr/lccal/m/sql/bin _Macintosh;blnzta■喝 鼻$mysql-hlocal^ust-uroot■閑-Dash:mysql;ctwiandnotToundMacintosh:bini1? 13./m/sql-hlocalhost-uroot-p^'"rHarnlns;Usingaps^swardonTheccw^ridLineInterfacecanbsinsecure,weiconifrtotne即SQLmonitor.conni^ndsendwith;or\g.YourHySQLconnectionid1s93阿Serverversion;5”6,18MySQLCcmnunltyServer(G^L)Copyright(c>26BB,2&13aOraclfrand/oritsafUllates.Mlrightsreserved.OracleisaregisteredtrademarkctOracl?Ccrpcrj-ionand/oritsaffiliates.Othernamesmaybetrademarksoftficirrtspectiveowners”Type'help;1or'\h1forhelp.Type'\c1tocleartfiecurrentinputstatenent.bin—rrysql—80x243、然后通過showdatabases命令查看當前的所有數(shù)據(jù)庫,使用use命令選擇進入某個數(shù)據(jù)庫,注意每個命令都要以英文分號“結(jié)束。角cnangectorn——mysql—80x24角cnangectorn——mysql—80x24afrmates.Otnernam?smaybtt『ademarksortneirrespectiveowners.Type'Help;'or*Xh'forhelp.Fype(\crtoclearthecurrentinputstatement.mysql>showdataba^^s;4—一,—— +|Database |4 +|inforraattonschema|I呷旳I I|pBr-fcnianc&_5cn&iw||spiderBBSOB- ||sp^d^r^lnaDB |jtest If- +6rowsm(e.08sec)U5e5p1derEB5DB;Readingtableiniormarionterconpietlcnoftableandcclumnnam&sYoucanturnoffthisf-eaturetogetaquickerstartupwith-A4、使用sql語句導出需要的數(shù)據(jù),sql語句不限于單個表的查詢。由于我的數(shù)據(jù)庫編碼是utf8格式,而office默認的編碼則是gb2312,所以當某個字段中包含中文時,導出到excel后,中文內(nèi)容是會亂碼的,此時需要convert轉(zhuǎn)換編碼,具體使用方式:selectid,classld,concert(cl^ssManeusing ,parentCl^ssIdfromCatalogIntooufflle'./CatalogZ.xls1:QueryOK,43rowsaffettedselectid,classld,concert(cl^ssManeusing ,parentCl^ssIdfromCatalogIntooufflle'./CatalogZ.xls1:QueryOK,43rowsaffetted(?鮎tnysql>select*fromreplyLlstIntooutfHe'./replyList.xls'query 2窘翅酣rowsaflected汨山5sec)seiectidFtopicIdFtopicUrl,topicClassld,useridsconvert(topic丁itl雖us1ng Fconvert(toplcCcntentusing ,createAt^vlewCount!c?wnentCoun—convert(typcKafieusinggb2312)Intooutfile'./topicList.^ls';ERROR1S54(竝耳A):unknowntblumn'1(11In'fielfilisfnysql^selectid,topicldttopicllrLttopicdassld,userid,convert(topicTitieusinggb2312)tconvert(topicCcnientusinggb23120.createAt^v1ewCount,comeientCounconvert(typeNaraeusinggb23l2)trofiitopicLlstintooutnit'./topicLlst.xls';QueryOK,195?7row?affected(9,33sec)mysql>selectId,useridscon^ert(uscrnafn&usinggb2312)?con^ert(genderusinggb2312).frlfrnd^ccuntr$tatusCDijnTTblogCountTalbumtountTccNmieritsCDLjrit,tDplctDiintrsharBCcuntfconvBrt(blrthdayusinggb2313),concert(groupNanieusinggb2312)rconvert(onLln&Hoursualng翦2312》》credL&AtfromuserinfoIntaaut'f1le'.Zuserlnfo.xls':roussfTected[9.32sec;bin—mysql—8Qx24我試著把文件保存到桌面,但始終提示沒有權(quán)限,應(yīng)該是和用戶有關(guān)吧,無視了。當使用“./”個路徑保存時,實際是保存到了/usr/local/mysql/data下面。打開看看,喲西,不亂碼了。5、下面是把數(shù)據(jù)導出為sql的insert語句。使用mysqldump命令,可以指定是單個表還是整個數(shù)據(jù)庫導出。打開終端,定位到/usr/local/mysql/bin,使用這個目錄下的mysqldump。導出單個表:命令格式為:mysqldump-u用戶名-p密碼-h主機地址數(shù)據(jù)庫名表名>導出文件存儲路徑例如:1./usr/local/mysql/bin/mysqldump-uroot-p123456-hlocalhost-t一一extended-insert=false—一default-character-set=utf8SpiderBBSDBCatalog>/Users/ethan/Desktop/Catalog.sql其中用到了幾個參數(shù),簡單說明一下:-t:等同于--no-create-info,只導出數(shù)據(jù),而不添加CREATETABLE語句。默認導出的文件中也有createtable語句。--extended-insert:使用具有多個VALUES列的INSERT語法,也就是傳說中一次插入多條數(shù)據(jù)的INSERT句式。這樣使導出文件更小,并加速導入時的速度,但是有可能sql語句會有長度限制,所以我并不推薦此種方式,比如我某個表中有500W條數(shù)據(jù),難保能用一條insert語句可以執(zhí)行完畢。此選項默認為打開狀態(tài),把他置為false,就是一條數(shù)據(jù)一個insert語句了。

--default-character-set:設(shè)置默認字符集,由于我的數(shù)據(jù)庫和表均是設(shè)定為utf8編碼格式,當不設(shè)置此選項時,導出的中文是亂碼,奇怪的是官方說明中,說這個選項的默認值是utf8,表示不解。導出整個數(shù)據(jù)庫:/usr/local/mysql/bin/mysqldump-uroot-p123456-hlocalhost-t一一extended-insert=false一一default-character-set=utf8SpiderBBSDB>/Users/ethan/Desktop/SpiderBBSDB.sql二、導入數(shù)據(jù)。有導出就有導入。上面第5步導出的sql文件,可以直接在mysqlworkbench中執(zhí)行,也可以使用mysqldump導入,這里說明一下如何使用mysqldump導入:/usr/local/mysql/bin/mysqldump-uroot-p123456-hlocalhost一一default-character-set=utf8SpiderBBSDB</Users/ethan/Desktop/Catalog.sql三、關(guān)于java連接mysql寫入中文亂碼。關(guān)于這個中文亂碼問題,著實折騰了我好久好久。一開始就百度谷歌bing,網(wǎng)上大多復制粘貼的答案,在這里記錄一下自己的情況,希望同路人不再走彎路。其實我的修改很簡單,把數(shù)據(jù)庫的編碼改為utf-8,在新建表時,把表的默認編碼也改為utf-8,就可以了。就這么個小小的改動,讓我足足折騰了一個通宵,表示有解決問題強迫癥,問題不解決真的睡不著,唉 SetasDefaultSchemaFiltertoThisSchemaSetasDefaultSchemaFiltertoThisSchema0O0令 泊LEditor(loc&liCHEMAS 猶I■QSearchobjectsspideripder!teStCopytoClipboardSendtoSQLEditorAlterSchema.,.CreateSchema...DropSchema...ReFreshAllutfB我trtfB"dfefiwikcglfetlgqBQucryl'armscii^arrnsciiB_aeneral_darmsciifi-amMii0_binutfB-uctsbinutfB-ucfsczechdutfB-ucfS_danish_cutfButfS_e5peranto_ciutfButfS_e5toman_QucfE-UEf&_laTvi3n_ciutfB-ucfS_llthu3r

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論