mycat中文亂碼-解決方案
亂碼問題可能出現的三個地方
1.程式連線的編碼要設定
jdbc:MySQL://192.168.1.1:8066/TESTDB?useUnicode=true&characterEncoding=utf8
2. mysql資料庫的編碼要設定
1) 檢視mysql server級別的編碼集
首先進入mysql使用命令 mysql -uroot –p
然後執行命令檢視: show variables like 'character%
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | NULL |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
編輯/etc/mysql/my.cf檔案
在[client]下新增
default-character-set=utf8
在[mysqld] 下新增
character_set_server=utf8
注:[mysqld]處也可使用default-character-set=utf8,如果啟動mysql服務出錯的話,就使用character_set_server=utf8。
2) 檢視資料庫級別的編碼是不是一致的,使用mysql客戶端可以看到
3. mycat的編碼
預設的是utf8格式的,明確指定在server.xml下的system標籤下新增格式如下:
<propertyname="charset">utf8</property>
4. 如果業務需要utf8mb4 等複雜字符集配置對應修改:
預設的是utf8格式的,明確指定在server.xml下的system標籤下新增格式如下:
<propertyname="charset">utf8mb4</property>
然後根據資料庫端的字符集ID配置mycat的字符集
配置conf/index_to_charset.properties
對應為字符集ID=字符集
比如45=utf8mb4
上述四點配置的編碼一致的話亂碼就不會出現了。