使MySQL能夠存儲(chǔ)emoji表情字符的設(shè)置教程
MySQL 需要支持 emoji 表情符號(hào)版本需要大于5.5.3,且字符集需要設(shè)置為utf8mb4 字符集。
utf8mb4和utf8到底有什么區(qū)別呢?原來(lái)以往的mysql的utf8一個(gè)字符最多3字節(jié),而utf8mb4則擴(kuò)展到一個(gè)字符最多能有4字節(jié),所以能支持更多的字符集。
將Mysql的編碼從utf8轉(zhuǎn)換成utf8mb4。
需要 >= MySQL 5.5.3版本、從庫(kù)也必須是5.5的了、低版本不支持這個(gè)字符集、復(fù)制報(bào)錯(cuò)
停止MySQL Server服務(wù)
修改 my.cnf或者mysql.ini
[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'
重啟 MySQL Server、檢查字符集。
查看服務(wù)器字符集設(shè)置
mysql> SHOW VARIABLES WHERE Variable_name LIKE 'character%' OR Variable_name LIKE 'collation%';
+--------------------------+--------------------+ | Variable_name | Value | +--------------------------+--------------------+ | character_set_client | utf8mb4 | | character_set_connection | utf8mb4 | | character_set_database | utf8mb4 | | character_set_filesystem | binary | | character_set_results | utf8mb4 | | character_set_server | utf8mb4 | | character_set_system | utf8 | | collation_connection | utf8mb4_unicode_ci | | collation_database | utf8mb4_unicode_ci | | collation_server | utf8mb4_unicode_ci | +--------------------------+--------------------+
查看數(shù)據(jù)庫(kù)字符集
mysql> select * from SCHEMATA where SCHEMA_NAME='ttlsa';
+--------------+-------------+----------------------------+------------------------+----------+ | CATALOG_NAME | SCHEMA_NAME | DEFAULT_CHARACTER_SET_NAME | DEFAULT_COLLATION_NAME | SQL_PATH | +--------------+-------------+----------------------------+------------------------+----------+ | def | ttlsa | utf8mb4 | utf8mb4_unicode_ci | NULL | +--------------+-------------+----------------------------+------------------------+----------+
查看表字符集
mysql> select TABLE_SCHEMA,TABLE_NAME,TABLE_COLLATION from information_schema.TABLES;
+--------------------+----------------------------------------------------+--------------------+ | TABLE_SCHEMA | TABLE_NAME | TABLE_COLLATION | +--------------------+----------------------------------------------------+--------------------+
查看列字符集
mysql> select TABLE_SCHEMA,TABLE_NAME,COLUMN_NAME,COLLATION_NAME from COLUMNS;
+--------------------+----------------------------------------------------+--------------------------------------------+--------------------+ | TABLE_SCHEMA | TABLE_NAME | COLUMN_NAME | COLLATION_NAME | +--------------------+----------------------------------------------------+--------------------------------------------+--------------------+
轉(zhuǎn)換字符集語(yǔ)句
use information_schema;
SELECT concat("ALTER DATABASE `",table_schema,"` CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;") as _sql
FROM `TABLES` where table_schema like "DB_NAME" group by table_schema;
SELECT concat("ALTER TABLE `",table_schema,"`.`",table_name,"` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;") as _sql
FROM `TABLES` where table_schema like "DB_NAME" group by table_schema, table_name;
SELECT concat("ALTER TABLE `",table_schema,"`.`",table_name, "` CHANGE `",column_name,"` `",column_name,"` ",data_type,"(",character_maximum_length,") CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;") as _sql
FROM `COLUMNS` where table_schema like "DB_NAME" and data_type in ('varchar');
SELECT concat("ALTER TABLE `",table_schema,"`.`",table_name, "` CHANGE `",column_name,"` `",column_name,"` ",data_type," CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;") as _sql
FROM `COLUMNS` where table_schema like "DB_NAME" and data_type in ('text','tinytext','mediumtext','long
相關(guān)文章
MySQL出現(xiàn)"Lock?wait?timeout?exceeded"錯(cuò)誤的原因是什么詳解
這篇文章主要給大家介紹了關(guān)于MySQL出現(xiàn)"Lock?wait?timeout?exceeded"錯(cuò)誤的原因是什么的相關(guān)資料,工作中同事遇到此異常,查找解決問題時(shí),收集整理形成此篇文章,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05
MySQL本地版本升級(jí)超詳細(xì)教程(從5.5.20升到8.0.21)
MySQL是一款廣泛使用的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),但是舊版本的客戶端可能會(huì)受到一些限制,下面這篇文章主要給大家介紹了關(guān)于MySQL本地版本升級(jí)超詳細(xì)教程,本文是從5.5.20升到8.0.21的相關(guān)資料,需要的朋友可以參考下2023-04-04
如何用mysqldump進(jìn)行全量和時(shí)間點(diǎn)備份
這篇文章主要介紹了如何用mysqldump進(jìn)行全量和時(shí)間點(diǎn)備份,幫助大家更好的管理MySQL數(shù)據(jù)庫(kù),感興趣的朋友可以了解下2020-08-08
MySQL配置文件my.cnf參數(shù)優(yōu)化和中文詳解
這篇文章主要介紹了MySQL配置文件my.cnf參數(shù)優(yōu)化和中文詳解,非常詳細(xì)的用中文注釋了各個(gè)參數(shù)的作用以及建議值,需要的朋友可以參考下2014-03-03
MySQL數(shù)據(jù)庫(kù)的多種連接方式及工具
本文詳細(xì)的介紹了數(shù)據(jù)庫(kù)的連接方式及數(shù)據(jù)庫(kù)連接的工具,給初學(xué)者分享一些知識(shí),也是學(xué)習(xí)總結(jié),感興趣的小伙伴可以閱讀一下2023-03-03
在Centos7環(huán)境安裝MySQL超詳細(xì)教程
MySQL是一種開源的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS),它是目前最流行和廣泛使用的數(shù)據(jù)庫(kù)之一,這篇文章主要給大家介紹了關(guān)于在Centos7環(huán)境安裝MySQL的相關(guān)資料,需要的朋友可以參考下2023-11-11

