如何把MySQL8.0默认字符集设置为utf8或utf8mb4的方式方法(只支持mysql8或以后版本)

[全站通告]付费处理问题,非诚勿扰,付出才有收获;有意加微信 2589053300 进行沟通处理

UTF-8 编码是一种变长的编码机制,可以用1~4个字节存储字符。但MySQL 中的 utf8 编码并不是真正的 UTF-8,其最长只有3个字节。当遇到占4个字节的 UTF-8 编码,例如 emoji 字符或者复杂的汉字,会导致存储异常。

从 5.5.3 开始,MySQL 开始用 utf8mb4 编码来实现完整的 UTF-8,其中 mb4 表示 most bytes 4,最多占用4个字节。从 8.0 之后,将会在某个版本开始用 utf8mb4 作为默认字符编码。uft8mb4 表示用 UTF-8 编码方案,每个字符最多占4个字节;

因为历史遗留问题,MySQL 中的 utf8 编码并不是真正的 UTF-8,而是阉割版的,最长只有3个字节。当遇到占4个字节的 UTF-8 编码,例如 emoji 表情字符或者复杂的汉字,会导致存储异常。

关于MySQL中默认字符集utf8和utf8mb4有关设置

通过修改my.ini文件达到修改目的 MySQL 8.0.23的my.ini配置文件存储位置;

注意事项:请将my.ini事先备份,避免由于文件错误造成MySQL无法使用

1.需要将MySQL80服务关闭,否者可能无法修改my.ini文件
2.在使用下面的的问件时请先备份原文件my.ini。

打开C:\ProgramData\MySQL\MySQL Server 8.0路径下的my.ini配置文件
第一步:在[client]下将加入default-character-set=utf8mb4
第二步:在[mysql]下将# default-character-set=修改为default-character-set=utf8mb4
第三步:在[mysqld]下将# character-set-server=改为

character-set-client-handshake = FALSE
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'

注意:MySQL 8.0.23的my.ini的配置文件被保存在C:\ProgramData\MySQL\MySQL Server 8.0路径下,并不在8.0版本以前的C:\Program Files\MySQL\MySQL Server 8.0路径下

mysql设置默认编码为utf-8的方法:

1、使用文本编辑器打开my.ini配置文件;

2、找到mysqld模块,添加配置【character_set_server=utf8】;

3、保存配置文件并重启mysql服务即可。

创建数据库时指定字符集为 utf8mb4,作者本人喜欢使用:可以用以下命令来创建;

CREATE DATABASE mydbname CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

备注:字符除了需要存储,还需要排序或比较大小。推荐用 utf8mb4_unicode_ci

utf8老库升级:

CREATE DATABASE`你的库名` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

新建utf8库:

CREATE DATABASE mydbname CHARACTER SET utf8 COLLATE utf8_general_ci;

MySql utf8mb4 延伸阅读:

utf8mb4 已成为 MySQL 8.0 的默认字符集,在MySQL 8.0.1及更高版本中将utf8mb4_0900_ai_ci 作为默认排序规则。

创建数据库时,如果没有指定字符集,会采用服务器的默认字符集。设置服务器默认字符集为 utf8mb4 可以提高便利性。

show variables like "%char%";

character_set_client:客户端请求数据的字符集
character_set_connection:从客户端接收到数据,然后传输的字符集
character_set_database:默认数据库的字符集,无论默认数据库如何改变,都是这个字符集;如果没有默认数据库,那就使用 character_set_server指定的字符集,这个变量建议由系统自己管理,不要人为定义。
character_set_filesystem:把操作系统上的文件名转化成此字符集,即把 character_set_client转换
character_set_filesystem, 默认binary是不做任何转换的
character_set_results:结果集的字符集
character_set_server:数据库服务器的默认字符集
character_set_system:存储系统元数据的字符集,总是 utf8,不需要设置;

付费处理问题,非诚勿扰,付出才有收获;有意加微信2589053300 --更多请关注:老梁`s Blog

所写所说,是心之所感,思之所悟,行之所得;文当无敷衍,落笔求简洁。 以所舍,求所获;有所依,方所成!

支付宝赞助
微信赞助

免责声明,若由于商用引起版权纠纷,一切责任均由使用者承担。

您必须遵守我们的协议,如您下载该资源,行为将被视为对《免责声明》全部内容的认可->联系老梁投诉资源
LaoLiang.Net部分资源来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。 敬请谅解! 侵权删帖/违法举报/投稿等事物联系邮箱:service@laoliang.net
意在交流学习,欢迎赞赏评论,如有谬误,请联系指正;转载请注明出处: » 如何把MySQL8.0默认字符集设置为utf8或utf8mb4的方式方法(只支持mysql8或以后版本)

发表评论

本站承接,网站推广(SEM,SEO);软件安装与调试;服务器或网络推荐及配置;APP开发与维护;网站开发修改及维护; 各财务软件安装调试及注册服务(金蝶,用友,管家婆,速达,星宇等);同时也有客户管理系统,人力资源,超市POS,医药管理等;

立即查看 了解详情