linux mysql 5 5 設定編碼

2021-09-01 08:50:24 字數 2055 閱讀 2506

應用層使用 spring 的org.springframework.web.filter.characterencodingfilter 使用utf-8轉碼,jsp頁面統統使用utf-8。關鍵是在mysql上面有問題, 由於第一次使用mysql,很不清楚怎麼設定。在網上找了一大堆,按照方式修改,結果均不能啟動。  後來想是不是由於版本問題造成的?  看了一下版本:5.5 原來果然有版本限制。下面是具體設定。 

1. 首先使用mysql命令進入mysql命令介面。使用如下命令檢視編碼設定 

mysql> status 

-------------- 

mysql  ver 14.14 distrib 5.5.12, for linux (i686) using readline 5.1 

connection id:          20 

current database: 

current user:           root@localhost 

ssl:                    not in use 

current pager:          stdout 

using outfile:          '' 

using delimiter:        ; 

server version:         5.5.12-log mysql community server (gpl) 

protocol version:       10 

connection:             localhost via unix socket 

server characterset:    latin1     #server char 

db     characterset:    latin1     #db     char 

client characterset:    latin1     #client char 

conn.  characterset:    latin1     #connection char 

2. 上面的latin1就是產生亂碼的罪魁禍首,因為入庫 和 資料顯示的時候使用的utf-8,因此,只需要將上面命令檢視到的編碼修改即可。 

3. 修改/etc/my.cnf 中的設定, 

在[client]節點下新增  

default-character-set=utf8 

在[mysqld]節點下新增 

character-set-server=utf8 

collation-server=utf8_general_ci 

儲存即可(如果你是使用vi來操作,則儲存時會報錯,因為這個檔案是唯讀屬性,可以使用 wq! 強制儲存退出)。 

4. 重啟mysql即可。 

5. 這裡面本沒有什麼高深之處, 重要一點是要注意版本, 網上有不少的修改帖子,都是要在[mysqld]下加上 default-character-set=utf8  ,實際上5.0(>)版本以上是不支援的,如果你這樣修改, 你的mysql將不能啟動, 報乙個錯,資訊是"上次退出的時候沒有儲存pid ?? 

關於亂碼: 

這麼多年來,碰到的亂碼問題可多了, 最開始學習jsp ,使用tomcat、到各種資料庫, 或者從xml等解析資料,   我的總結是: 亂碼不可怕, 只要把握一條原則即可, 「這個東西用什麼編碼的, 用什麼解碼的,用什麼編碼的, 用什麼解碼的....」,只要保證這個過程中的編碼、解碼過程一致就ok, 例如,你用gbk編碼了乙個str, 然後用utf解碼肯定會出錯,但是你如果用這個utf8的str解碼後的byte用gbk再次編碼就麼有問題了。 

要清楚本質: 不論什麼東東, 在底層表示的時候都是 byte, 而在真正編碼的時候,就可能是用乙個位元組、兩個位元組 ==來表示某種語言的乙個字元, 例如乙個asc字元用乙個byte表示即可,但是漢字卻是使用兩個位元組。   解碼時,乙個漢字用兩個byte表示,如果你在編碼的時候用這兩個byte來解析成兩個字元,則結果不是原字元-----這就是亂碼原理。 

最懶的方式: 保證你的專案 從ui-server-db 這個過程使用一致的編碼格式即可,前提是你需要知道各個過程**發生瞭解碼、**發生了編碼。

Linux,mysql密碼設定和設定ip許可權訪問

在我的前面一篇博 linux,安裝mysql 有介紹怎麼在linux上安裝mysql,安裝成功之後,我們可能想給mysql加上訪問密碼和ip的訪問許可權,一方面是增加資料庫的安全係數,所以要注意的是,當你的ip位址變動了,要及時修改哦 1.先進入mysql安裝目錄下的bin資料夾,root許可權的進...

Linux Mysql設定遠端登入許可權管理

mysql grant許可權1,許可權2,許可權non資料庫名稱.表名稱to使用者名稱 使用者位址identified by 連線口令 其中1.許可權 select,insert,update,delete,create,drop,index,alter,grant,references,reloa...

Tensorflow全域性設定可見GPU編號

筆者需要tensorflow僅執行在乙個gpu上 機器本身有多gpu 而且需要依據系統引數動態調節,故無法簡單使用cuda visible devices。一種方式是全域性使用tf.device函式生成的域,但裝置號需要在繪製graph前指定,仍然不夠靈活。查閱文件發現config的gpuoptio...