1. 程式人生 > >Excel匯入中文到MYSQL遇到無法匯入以及匯入後亂碼問題

Excel匯入中文到MYSQL遇到無法匯入以及匯入後亂碼問題

load data local infile'/Users/Sine1/Downloads/data_test.csv' into table searchingsystem.Talent fieldsterminated by ';';

將EXCEL檔案轉成CSV檔案匯入Mysql遇到的問題:

1.     csv檔案只能匯入英文和數字,中文導不進去,mysql的character_set_database,character_set_server原本設utf8,無法匯入中文,需要將mysql中character_set_database,character_set_server改為gbk

2.     修改/etc/my.cnf時報錯Warning: World-writable config file '/etc/mysql/my.cnf' is ignored

,然後mysql自動設定character_set_database,character_set_server為latin1,可以匯入中文,會出現亂碼問題。原因是‘/etc/my.cnf’is ignored ,大概意思是許可權全域性可寫,任何一個使用者都可以寫。mysql擔心這種檔案被其他使用者惡意修改,所以忽略掉這個配置檔案。導致無法進入,這也是mysql的安全機制之一。所以我們必須得改一些許可權。設定其他使用者不可寫。

a)      在終端執行chmod 644 /etc/my.cnf

b)     重啟mysql,會載入my.cnf

問題解決。

附:CSV匯入到Mysql句型:

oad data local infile '/Users/Sine1/Downloads/data.csv' into tablesearchingsystem.Talent

fields terminated by ','

enclosed by '"'

lines terminated by '\r\n';

3.     html呼叫mysql資料庫中文又出現亂碼,建議先把資料庫和表的編碼全改成utf8,

在systemprint下面輸出沒問題,應該是tomcat伺服器或者$.ajax中get、post的問題:

a.      首先將server.xml中URIEncoding設為UTF-8,結果網頁讀出資料庫查詢結果還是亂碼;

b.     在searchTalentsServlet中新增request.setCharacterEncoding("UTF-8"),結果讀出來還是亂碼;

c.      在searchTalentsServlet中新增response.setCharacterEncoding("UTF-8"),結果成功。