程序寫入mycat中文亂碼解決(也包括mysql編碼修改)


亂碼問題可能出現的三個地方

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  (如果重啟mysql出錯調整位置,在[mysqld] 最下面)
我機器上是這樣配置的:
[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql character-set-server=utf8 # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0

注:[mysqld]處也可使用default-character-set=utf8,如果啟動mysql服務出錯的話,就使用character_set_server=utf8。

2) 查看數據庫級別的編碼是不是一致的,使用mysql客戶端可以看到

mysql> show variables like 'character%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+




 

3. mycat的編碼

默認的是utf8格式的,明確指定在server.xml下的system標簽下添加格式如下:

<property name="charset">utf8</property>

 

4. 如果業務需要utf8mb4 等復雜字符集配置對應修改:

默認的是utf8格式的,明確指定在server.xml下的system標簽下添加格式如下:

<property name="charset">utf8mb4</property>

 

然后根據數據庫端的字符集ID配置mycat的字符集序列:

配置conf/index_to_charset.properties

 

對應為字符集ID=字符集

比如45=utf8mb4

 

上述四點配置的編碼一致的話亂碼就不會出現了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM