事情是這樣的。mysql
初學linux,本身在本地虛擬機linux系統裏搭建了web服務器。就把原來在window上開發的項目放到linux上來。我用的是rz命令用xshell來本地上傳。項目其餘的一切沒什麼問題,就mysql導入sql文件的時候出現了中文亂碼的問題。但在服務器上的數據是沒有問題的。linux
通過本身的研究並解決了問題,緣由有兩點:web
數據庫編碼不對,由於linux系統默認編碼是以英文爲主,即爲latinl. 這與咱們通常設置的utf8不符合,因此 這是一個緣由。
sql
應對方法:
shell
默認登陸mysql以後能夠經過SHOW VARIABLES語句查看系統變量及其值。數據庫
命令:mysql> show variables like '%character%';服務器
那說明編碼確實不符。編碼
接下來須要修改mysql配置文件spa
vi /etc/my.cnf
在[client]下增長default-character-set=utf8
在[mysqld]下增長default-character-set=utf8
同時加上init_connect='SET NAMES utf8' (設定鏈接mysql數據庫時使用utf8編碼,以讓mysql數據庫爲utf8運行)
修改保存完成後 重啓mysql服務
service mysqld restart
進入Mysql 從新查看mysql數據編碼 如圖所示
那麼恭喜你 更改mysql數據編碼成功。
2.第二點 比較簡單 但每每是忽略了簡單的問題 致使找不到問題所在 也仍是文件編碼問題
從window上上傳的文件 到linux下 運行起來會存在有數據編碼的問題。
sql文件我是從window上傳的 因此 理所固然 這個問題就存在了。
因此 在導入sql文件以前 應該把sql文件的編碼給轉換成linux識別的編碼 命令以下:
vi 目標文件
鍵入 :setfileformat=unix 回車 保存
完成後 數據恢復正常。
這文章主要是寫給本身未來看的 各位前輩 若有不對的地方 還望多多指點。