中文無法插入mariadb數(shù)據(jù)庫解決辦法

最近我在用mybatis插入一條數(shù)據(jù)到mariadb時,報了一個不正確的字符串的錯誤,服務器顯示500錯誤,從控制臺打印相關(guān)的提交數(shù)據(jù)都比較正常估盘,試了英文沒有問題,那么問題就出現(xiàn)在了字符集了骡尽。


錯誤截圖

錯誤信息主要如下:

### Error updating database. Cause: java.sql.SQLDataException: (conn=329) Incorrect string value: '\xE4\xB9\xB0:15...' for column 'note' at row 1
### The error may exist in com/xiao/shopping/demo/dao/PurchaseRecordDao.java (best guess)
### The error may involve com.xiao.shopping.demo.dao.PurchaseRecordDao.insertPurchaseRecord-Inline
### The error occurred while setting parameters
### SQL: insert into T_PURCHASE_RECORD( id,user_id,product_id,price,quantity,sum,purchase_date ,note ) values ( ?,?,?,?,?,?,now(),? )
### Cause: java.sql.SQLDataException: (conn=329) Incorrect string value: '\xE4\xB9\xB0:15...' for column 'note' at row 1
; (conn=329) Incorrect string value: '\xE4\xB9\xB0:15...' for column 'note' at row 1; nested exception is java.sql.SQLDataException: (conn=329) Incorrect string value: '\xE4\xB9\xB0:15...' for column 'note' at row 1] with root cause

后面上了mariaDB官網(wǎng)看遣妥,原來mariadb默認的字符集是latin1,而服務器字符集為utf-8攀细,當使用中文寫入數(shù)據(jù)庫時箫踩,字符集不正確,便出錯了谭贪。官網(wǎng)原話如下:

In MariaDB, the default character set is latin1, and the default collation is latin1_swedish_ci
When changing a character set and not specifying a collation, the default collation for the new character set is always used.

我們使用一條命令查看表的字符集

show create table [表格名稱]
show create database [數(shù)據(jù)庫名稱]

查看數(shù)據(jù)庫后境钟,確實是這樣。

數(shù)據(jù)庫表字符集打印結(jié)果

數(shù)據(jù)庫字符集

我們可以使用下面這條SQL語句更改數(shù)據(jù)庫表和數(shù)據(jù)庫的字符集

ALTER TABLE shopping.T_PURCHASE_RECORD
MODIFY COLUMN note varchar(512) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL;
ALTER DATABASE shopping COLLATE = 'utf8_unicode_ci', CHARACTER='utf8';

修改字符集后重新post數(shù)據(jù)

修改后我們字符集的問題就解決了俭识。不過慨削,雖然我們使用的數(shù)據(jù)庫字符集正確了,如果沒有修改數(shù)據(jù)庫的設置,我們再創(chuàng)建一張表或者數(shù)據(jù)庫缚态,又回遇到這個坑爹的問題磁椒。為了一勞永逸,我們直接修改數(shù)據(jù)庫配置玫芦。

linux下運行vim命令操作my.cnf配置文件
sudo vi /etc/my.cnf
添加一行
[mysqld]
character-set-server = utf8
collation-server = utf8_unicode_ci

my.cnf配置文件
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末浆熔,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子桥帆,更是在濱河造成了極大的恐慌蘸拔,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件环葵,死亡現(xiàn)場離奇詭異,居然都是意外死亡宝冕,警方通過查閱死者的電腦和手機张遭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來地梨,“玉大人菊卷,你說我怎么就攤上這事”ζ剩” “怎么了洁闰?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長万细。 經(jīng)常有香客問我扑眉,道長,這世上最難降的妖魔是什么赖钞? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任腰素,我火速辦了婚禮,結(jié)果婚禮上雪营,老公的妹妹穿的比我還像新娘弓千。我一直安慰自己,他們只是感情好献起,可當我...
    茶點故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布洋访。 她就那樣靜靜地躺著,像睡著了一般谴餐。 火紅的嫁衣襯著肌膚如雪姻政。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天总寒,我揣著相機與錄音扶歪,去河邊找鬼。 笑死,一個胖子當著我的面吹牛善镰,可吹牛的內(nèi)容都是我干的妹萨。 我是一名探鬼主播,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼炫欺,長吁一口氣:“原來是場噩夢啊……” “哼乎完!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起品洛,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤树姨,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后桥状,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體帽揪,經(jīng)...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年辅斟,在試婚紗的時候發(fā)現(xiàn)自己被綠了转晰。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,102評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡士飒,死狀恐怖查邢,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情酵幕,我是刑警寧澤扰藕,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站芳撒,受9級特大地震影響邓深,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜番官,卻給世界環(huán)境...
    茶點故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一庐完、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧徘熔,春花似錦门躯、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至山孔,卻和暖如春懂讯,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背台颠。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工褐望, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留勒庄,地道東北人。 一個月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓瘫里,卻偏偏與公主長得像实蔽,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子谨读,可洞房花燭夜當晚...
    茶點故事閱讀 45,044評論 2 355

推薦閱讀更多精彩內(nèi)容