欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySql存儲表情報錯的排查解決

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

前言 

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

問題

個人博客markdown插入標簽后報以下錯誤

報錯信息:Incorrect string value: '\\xF0\\x9F\\x98\\x82' for column 'content' at row 1

在網(wǎng)上查詢得知:在用mysql進行表情符號存儲時,會報錯,這是由于Emoji表情是4個字節(jié),而mysql的utf-8編碼最多是3個字節(jié),所以在進行表情符號插入的時候會插入不進去。那么此時應該通過修改mysql編碼為utf8mb4來解決該問題。

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

排查解決

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

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服務

$ service mysqld restart

mysql變量配置擴展

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

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

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

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

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

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

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

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

補充

在實際開發(fā)中,我們應該提前約定好字符集,而不是后面隨意更改,隨意更改可能會影響到原有數(shù)據(jù)顯示問題;可以更改mysql默認配置,將其設(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存儲表情報錯排查解決的文章就介紹到這了,更多相關(guān)MySql存儲表情報錯內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

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

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

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

    MySQL查詢語法匯總

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

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

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

    linux下mysql自動備份腳本代碼

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

    MySQL正則表達式匹配查詢(含實例)

    MySQL中正式表達式通常被用來檢索或替換符合某個模式的文本內(nèi)容,根據(jù)指定的匹配模式匹配文中符合要求的特殊字符串,下面這篇文章主要給大家介紹了關(guān)于MySQL正則表達式匹配查詢的相關(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ù)庫中的表,用于對數(shù)據(jù)進行分區(qū)或分桶存儲,以提高數(shù)據(jù)庫的性能和查詢效率,需要詳細了解可以參考下文
    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ā)器的使用場景及方法實例

    MySQL觸發(fā)器的使用場景及方法實例

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

最新評論