mysql 8 x修改访问权限,MySQL8.x 字符集设置

正式版 8.0.11 已发布,官方表示 MySQL 8 要比 MySQL 5.7 快 2 倍,还带来了大量的改进和更快的性能。

MySQL中utf8字符集使用三个字节编码一个字符,自2004(mysql4.1)年被引入,能够支持绝大多数语言,但依然有些字符不能正确编码,如表情字符,为此mysql5.5引入了utf8mb4字符集,提供了另一种选择。在mysql5.7对utf8mb4进行了大幅优化,并丰富了校验字符集。

MySQL8 默认编码使用utf8mb4, utf8mb4编码是utf8编码的超集,兼容utf8,并且能存储4字节的表情字符历史。

MySQL数据库的 "utf8"并不是真正概念里的 UTF-8,MySQL中的"utf8"编码只支持最大3字节每字符,真正的大家正在使用的UTF-8编码是应该能支持4字节每个字符。

MySQL的开发者没有修复这个bug,他们在2010年增加了一个变通的方法:一个新的字符集"utf8mb4"另外,utf-32编码固定使用4字节,32bit存储相比utf8浪费空间。

直到今日mysql8, utf8mb4成为了默认字符集,并极大地扩充了collation set,增加了accent sensitive(as) , accent_insensitive(ai)(重读敏感,对于某些语言需要重读的字符可以是用专用字符标识,如:ã) ,可以支持更加丰富的字符校验。

二、MySQL8.x字符集设置

设置MySQL字符集为 utf8

#cat /etc/my.cnf

[mysqld]

character-set-server = utf8

collation-server = utf8_general_ci

init_connect = "SET NAMES 'utf8'"

character-set-client-handshake = FALSE

[mysql]

default-character-set = utf8

[client]

default-character-set = utf8

c0ab8f9a861d85969dd793af601569b7.png

# cat /etc/my.cnf

[mysqld]

init_connect ='set collation_connection = utf8_general_ci'

init_connect ='set collation_database=utf8_general_ci'

init_connect ='set names utf8'

init_connect ='set character_set_connection=utf8'

character-set-server=utf8

collation-server=utf8_general_ci

skip-character-set-client-handshake

[mysql]

default-character-set = utf8

[client]

default-character-set = utf8

##################################################

d2aff95de7d38bc058156bb5c73257af.png

mysql> show variables like '%character%';

b4bfce5fa9abd77a584fa935a573224f.png

设置MySQL字符集为 utf8mb4

# cat /etc/my.cnf

###############################################

[mysqld]

# Character Settings

init_connect='SET NAMES utf8mb4'

# 连接建立时执行设置的语句,对super权限用户无效

character-set-server = utf8mb4

# 设置服务端校验规则

collation-server = utf8mb4_general_ci

skip-character-set-client-handshake

[mysql]

default-character-set = utf8mb4

[client]

default-character-set = utf8mb4

3e93537ab65d063e46d3edb612307c02.png

三、参考

MySQL 8.0安装与字符集设置

https://www.cnblogs.com/kevingrace/p/10482469.html

MySQL8.0.17默认字符集latin1改utf8

https://www.cnblogs.com/jiangnima/p/11290681.html

MySQL修改编码为UTF-8无效的解决办法

https://blog.csdn.net/qq_41366268/article/details/89161424

MySQL 8.0.11 字符集

https://blog.csdn.net/llyyxx0088/article/details/80062139

MySQL 8.0:字符集从 utf8 转换成 utf8mb4

https://zhuanlan.zhihu.com/p/92404746

MySQL8默认字符集utf8mb4

https://dbalife.info/2018/06/16/MySQL8%E9%BB%98%E8%AE%A4%E5%AD%97%E7%AC%A6%E9%9B%86utf8mb4

MySQL 8.0.1: Accent and case sensitive collations for utf8mb4

https://mysqlserverteam.com/mysql-8-0-when-to-use-utf8mb3-over-utf8mb4

http://mysqlserverteam.com/mysql-8-0-1-accent-and-case-sensitive-collations-for-utf8mb4

作者:赏金Micheal

链接:https://www.jianshu.com/p/a032c3b19449

来源:简书

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值