詳解JDBC對(duì)Mysql utf8mb4字符集的處理
寫在前面
在開發(fā)微信小程序的時(shí)候,評(píng)論服務(wù)模塊希望添加上emoji表情,但是emoji表情是4個(gè)字節(jié)長(zhǎng)度的,所以需要進(jìn)行設(shè)置
當(dāng)前項(xiàng)目是JAVA編寫, 使用JDBC連接操作數(shù)據(jù)庫(kù), 如下針對(duì)的JDBC操作的解決方案
一.JDBC的URL的正常操作
在連接配置中,聲明UTF-8的字符編碼,
但是現(xiàn)在需要存儲(chǔ)emoji表情,所以在存儲(chǔ)emoji字符串時(shí)會(huì)報(bào)錯(cuò).
二.重新配置為emoji表情的utf8mb4字符集類型
報(bào)錯(cuò):客戶端連接時(shí)報(bào)錯(cuò),不支持該字符集
上述問題的解決方案
三.URL連接配置改成
jdbc.url=jdbc:mysql://HOST:3306/your_database?useSSL=false
同時(shí)數(shù)據(jù)庫(kù)配置文件my.cnf 進(jìn)行相應(yīng)的修改
[client] default-character-set = utf8mb4 [mysql] default-character-set = utf8mb4 [mysqld] character-set-client-handshake = FALSE character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci
重啟服務(wù)MySQL服務(wù)
問題到此解決
ps:假如你使用的是Docker運(yùn)行的mysql,你想找到my.cnf文件的話,
步驟如下:
1.進(jìn)入mysql容器
docker exec -it 隨機(jī)的容器名(或者容器ID) bash
2.find / -name my.cnf
通常在:/etc/mysql/my.cnf
3.需要更改這個(gè)文件,新增上面的信息
我這里的操作是使用 >> 進(jìn)行追加
cd /etc/mysql echo [client] >> my.cnf
這樣一行一行的進(jìn)行追加(因?yàn)楹孟袢萜骼餂]有vi這個(gè)命令)
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot自動(dòng)配置的實(shí)現(xiàn)原理
這篇文章主要介紹了詳解SpringBoot自動(dòng)配置原理,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-01-01
獲取JPEGImageEncoder和JPEGCode這兩個(gè)類的方法
下面小編就為大家?guī)硪黄@取JPEGImageEncoder和JPEGCode這兩個(gè)類的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-07-07
java基礎(chǔ)教程之拼圖游戲的實(shí)現(xiàn)
拼圖游戲大家應(yīng)該都玩過,下面這篇文章主要給大家介紹了關(guān)于java基礎(chǔ)教程之拼圖游戲的實(shí)現(xiàn)方法,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-01-01
SpringBoot整合liquibase的實(shí)現(xiàn)方法

