mysql 5.0 utf8mb4_mysql 5.5 数据库 utf8改utf8mb4

本文详细介绍了如何将MySQL 5.0环境的字符集从utf8改为utf8mb4,包括查看当前字符集设置、修改配置文件、更新数据库设置以及解决连接报错问题。
摘要由CSDN通过智能技术生成

由于需要用到utf8mb4,之前是utf8现在给改成utf8mb4

查看当前环境

48304ba5e6f9fe08f3fa1abda7d326ab.png

SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';

+--------------------------+--------------------+

| Variable_name | Value |

+--------------------------+--------------------+

| character_set_client | latin1 |

| character_set_connection | latin1 |

| character_set_database | utf8mb4 |

| character_set_filesystem | binary |

| character_set_results | latin1 |

| character_set_server | utf8mb4 |

| character_set_system | utf8 |

| collation_connection | latin1_swedish_ci |

| collation_database | utf8mb4_general_ci |

| collation_server | utf8mb4_general_ci |

+--------------------------+--------------------+

48304ba5e6f9fe08f3fa1abda7d326ab.png

打开MySQL的配置文件,将字符集的配置修改成如下:

48304ba5e6f9fe08f3fa1abda7d326ab.png

[client]

default-character-set = utf8mb4

[mysql]

default-character-set = utf8mb4

[mysqld]

character-set-client-handshake = FALSE

character-set-server = utf8mb4

collation-server = utf8mb4_general_ci

init_connect='SET NAMES utf8mb4'

48304ba5e6f9fe08f3fa1abda7d326ab.png

修改后

48304ba5e6f9fe08f3fa1abda7d326ab.png

root@localhost:(none)>SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' 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 |

+--------------------------+--------------------+

root@localhost:(none)>\s;

--------------

mysql  Ver 14.14 Distrib 5.1.73, for redhat-linux-gnu (x86_64) using readline 5.1

Connection id:        61

Current database:

Current user:        root@localhost

SSL:            Not in use

Current pager:        stdout

Using outfile:        ''

Using delimiter:    ;

Server version:        5.5.36-log Source distribution

Protocol version:    10

Connection:        Localhost via UNIX socket

Server characterset:    utf8mb4

Db     characterset:    utf8mb4

Client characterset:    utf8mb4

Conn.  characterset:    utf8mb4

UNIX socket:        /tmp/mysql.sock

Uptime:            3 min 22 sec

48304ba5e6f9fe08f3fa1abda7d326ab.png

修改后发现连接报错

mysql: Character set 'utf8mb4' is not a compiled character set and is not specified in the '/usr/share/mysql/charsets/Index.xml' file

修改/usr/share/mysql/charsets/Index.xml

修改前

48304ba5e6f9fe08f3fa1abda7d326ab.png

Unicode

UTF-8 Unicode

utf-8

primary

compiled

binary

compiled

48304ba5e6f9fe08f3fa1abda7d326ab.png

修改后

48304ba5e6f9fe08f3fa1abda7d326ab.png

Unicode

UTF-8 Unicode

utf-8

primary

compiled

binary

compiled

48304ba5e6f9fe08f3fa1abda7d326ab.png

在MyBatis 5.0中,"utf8mb4_general_ci"是一种字符集,它使用了UTF-8编码,并且采用了utf8mb4_unicode_ci的排序规则。这个排序规则会考虑字符的Unicode编码和Plane的概念。Unicode字符被分为17个planes,每个plane包含65536个代码点。Plane 0(BMP)包含了世界上各种语言与标记中最常用的字符,而Plane 1(SMP)则包含了表情符号、字母与数学符号、音乐符号、太玄经(太极符号)、装饰符号、扑克牌、麻将符号、箭头扩展和一些世界上各种语言不太常用的文字等等。所以在"utf8mb4_general_ci"字符集中,可以支持更多的字符范围和Unicode编码。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [MySQL字符编码的讨论:如何处理emoji等4字节的Unicode字符 - utf8mb4 vs. utf8 Collations](https://blog.csdn.net/dduhmy/article/details/42044243)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [如何处理emoji等4字节的Unicode字符 - utf8mb4 vs. utf8 Collations](https://blog.csdn.net/codepython/article/details/50403252)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值