亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

MySql存儲(chǔ)表情報(bào)錯(cuò)的排查解決

 更新時(shí)間:2022年07月08日 08:26:17   作者:風(fēng)繼續(xù)吹1943  
隨著互聯(lián)網(wǎng)的發(fā)展,產(chǎn)生了許多新類型的字符,例如emoji這種類型的符號(hào),也就是我們通常在聊天時(shí)發(fā)的小黃臉表情,下面這篇文章主要給大家介紹了關(guān)于MySql存儲(chǔ)表情報(bào)錯(cuò)的排查解決,需要的朋友可以參考下

前言 

  • 操作系統(tǒng):linux
  • 數(shù)據(jù)庫(kù)版本: 8.0.27
  • 查看版本命令:mysql -uroot -p 登錄成功后就可以看到

問(wèn)題

個(gè)人博客markdown插入標(biāo)簽后報(bào)以下錯(cuò)誤

報(bào)錯(cuò)信息:Incorrect string value: '\\xF0\\x9F\\x98\\x82' for column 'content' at row 1

在網(wǎng)上查詢得知:在用mysql進(jìn)行表情符號(hào)存儲(chǔ)時(shí),會(huì)報(bào)錯(cuò),這是由于Emoji表情是4個(gè)字節(jié),而mysql的utf-8編碼最多是3個(gè)字節(jié),所以在進(jìn)行表情符號(hào)插入的時(shí)候會(huì)插入不進(jìn)去。那么此時(shí)應(yīng)該通過(guò)修改mysql編碼為utf8mb4來(lái)解決該問(wèn)題。

但是我在sql表創(chuàng)建時(shí)已經(jīng)想到了這一點(diǎn)并且相關(guān)字段也是utf8mb4,為什么還會(huì)報(bào)錯(cuò)

排查解決

通過(guò)多方查詢和嘗試,發(fā)現(xiàn)只要修改mysql配置信息就可以解決問(wèn)題

1.在linux下找到mysql的配置文件my.cnf (window為my.ini),如果找不到可以直接查詢

$ find / -name my.cnf

2.在my.cnf修改編輯

[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
init_connect='SET NAMES utf8mb4'

3.重啟mysql服務(wù)

$ service mysqld restart

mysql變量配置擴(kuò)展

1.character_set_client主要用來(lái)設(shè)置客戶端使用的字符集。

2.character_set_connection主要用來(lái)設(shè)置連接數(shù)據(jù)庫(kù)時(shí)的字符集,如果程序中沒(méi)有指明連接數(shù)據(jù)庫(kù)使用的字符集類型則按照這個(gè)字符集設(shè)置。

3.character_set_database主要用來(lái)設(shè)置默認(rèn)創(chuàng)建數(shù)據(jù)庫(kù)的編碼格式,如果在創(chuàng)建數(shù)據(jù)庫(kù)時(shí)沒(méi)有設(shè)置編碼格式,就按照這個(gè)格式設(shè)置。

4.character_set_filesystem文件系統(tǒng)的編碼格式,把操作系統(tǒng)上的文件名轉(zhuǎn)化成此字符集,即把 character_set_client轉(zhuǎn)換character_set_filesystem, 默認(rèn)binary是不做任何轉(zhuǎn)換的。

5.character_set_results數(shù)據(jù)庫(kù)給客戶端返回時(shí)使用的編碼格式,如果沒(méi)有指明,使用服務(wù)器默認(rèn)的編碼格式。

6.character_set_server服務(wù)器安裝時(shí)指定的默認(rèn)編碼格式,這個(gè)變量建議由系統(tǒng)自己管理,不要人為定義。

7.character_set_system數(shù)據(jù)庫(kù)系統(tǒng)使用的編碼格式,這個(gè)值一直是utf8,不需要設(shè)置,它是為存儲(chǔ)系統(tǒng)元數(shù)據(jù)的編碼格式。

8.character_sets_dir這個(gè)變量是字符集安裝的目錄。

補(bǔ)充

在實(shí)際開(kāi)發(fā)中,我們應(yīng)該提前約定好字符集,而不是后面隨意更改,隨意更改可能會(huì)影響到原有數(shù)據(jù)顯示問(wèn)題;可以更改mysql默認(rèn)配置,將其設(shè)為utf8mb4具體操作如下:

1、修改mysql配置文件(windows:my.ini;linux:my.cnf)

[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
#character-set-server=utf8 這行注釋掉
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
init_connect = 'SET NAMES utf8mb4'

2、重啟mysql

service mysql restart

3、查看是否修改成功

SHOW VARIABLES WHERE Variable_name LIKE 'character%' OR Variable_name LIKE 'collation%';

下圖紅框內(nèi)為utf8mb4信息即為修改成功

總結(jié)

到此這篇關(guān)于MySql存儲(chǔ)表情報(bào)錯(cuò)排查解決的文章就介紹到這了,更多相關(guān)MySql存儲(chǔ)表情報(bào)錯(cuò)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • sql語(yǔ)句escape查詢數(shù)據(jù)中含通配字符[ %用法詳解

    sql語(yǔ)句escape查詢數(shù)據(jù)中含通配字符[ %用法詳解

    這篇文章主要為大家介紹了sql語(yǔ)句escape查詢數(shù)據(jù)中含通配字符[ %用法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • MySQL查詢語(yǔ)法匯總

    MySQL查詢語(yǔ)法匯總

    這篇文章主要介紹了MySQL查詢語(yǔ)法的匯總,幫助大家更好的理解和學(xué)習(xí)mysql,感興趣的朋友可以了解下
    2020-08-08
  • MySQL 慢查詢?nèi)罩镜拈_(kāi)啟與配置

    MySQL 慢查詢?nèi)罩镜拈_(kāi)啟與配置

    這篇文章主要介紹了MySQL 慢查詢?nèi)罩镜拈_(kāi)啟與配置的方法,幫助大家更好的理解和使用MySQL數(shù)據(jù)庫(kù),感興趣的朋友可以了解下
    2020-12-12
  • linux下mysql自動(dòng)備份腳本代碼

    linux下mysql自動(dòng)備份腳本代碼

    mysql是以mysql用戶身份運(yùn)行的,對(duì)/home /mybackup不可寫也會(huì)失敗
    2010-07-07
  • MySQL正則表達(dá)式匹配查詢(含實(shí)例)

    MySQL正則表達(dá)式匹配查詢(含實(shí)例)

    MySQL中正式表達(dá)式通常被用來(lái)檢索或替換符合某個(gè)模式的文本內(nèi)容,根據(jù)指定的匹配模式匹配文中符合要求的特殊字符串,下面這篇文章主要給大家介紹了關(guān)于MySQL正則表達(dá)式匹配查詢的相關(guān)資料,需要的朋友可以參考下
    2022-09-09
  • CentOS 7中安裝mysql server的步驟分享

    CentOS 7中安裝mysql server的步驟分享

    這篇文章主要介紹了CentOS 7中安裝mysql server的步驟分享,需要的朋友可以參考下
    2015-09-09
  • MySQL分區(qū)表和分桶表的操作詳解

    MySQL分區(qū)表和分桶表的操作詳解

    這篇文章主要介紹了MySQL分區(qū)表和分桶表的操作,分區(qū)表和分桶表都是數(shù)據(jù)庫(kù)中的表,用于對(duì)數(shù)據(jù)進(jìn)行分區(qū)或分桶存儲(chǔ),以提高數(shù)據(jù)庫(kù)的性能和查詢效率,需要詳細(xì)了解可以參考下文
    2023-05-05
  • mysql 5.7.11 winx64安裝配置方法圖文教程

    mysql 5.7.11 winx64安裝配置方法圖文教程

    這篇文章主要為大家分享了mysql5.7.11 winx64安裝配置方法圖文教程,感興趣的朋友可以參考一下
    2016-05-05
  • [MySQL binlog]mysql如何徹底解析Mixed日志格式的binlog

    [MySQL binlog]mysql如何徹底解析Mixed日志格式的binlog

    這篇文章主要介紹了mysql徹底解析Mixed日志格式的binlog,需要的朋友可以參考下
    2014-02-02
  • MySQL觸發(fā)器的使用場(chǎng)景及方法實(shí)例

    MySQL觸發(fā)器的使用場(chǎng)景及方法實(shí)例

    這篇文章主要給大家介紹了關(guān)于MySQL觸發(fā)器的使用場(chǎng)景及方法的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12

最新評(píng)論