失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > MySQL数据库修改字符集为utf8mb4

MySQL数据库修改字符集为utf8mb4

时间:2022-08-07 15:30:43

相关推荐

MySQL数据库修改字符集为utf8mb4

MySQL字符集设置—MySQL数据库乱码问题

需要修改my.ini(f)

[client]

default-character-set=utf8mb4

[mysqld]

character-set-client-handshake = false

character_set_server = utf8mb4

collation_server = utf8mb4_bin

init_connect='set names utf8mb4'

[mysqldump]

character_set_client=utf8mb4

[mysql]

default-character-set=utf8mb4

查看是否修改成功的方法:

Mysql执行:

show variables like 'version';

show variables like '%character%';

show variables like 'collation%';

结果如下图

大家观察看,charater_set_system还是utf8,show variables 看下,但是它应是个只读变量。这个是系统的字符集,修改不了。所以,这个值不可配置,是硬编码的,和OS是紧密在一起的,不需要关注。

查看库的字符集

语法:show database status from 库名 like 表名;

mysql> show create database shiyan\G*************************** 1. row *************************** Database: shiyanCreate Database: CREATE DATABASE `shiyan` /*!40100 DEFAULT CHARACTER SET gbk */1 row in set (0.00 sec)

4.查看表的字符集

语法:show table status from 库名 like 表名;

mysql> show table status from class_7 like 'test_info';

5.查看表中所有列的字符集

语法:show full columns from 表名;

mysql> show full columns from test_info;

关于mysql init_connect的几个要点总结

init_connect的作用

init_connect通常用于:当一个连接进来时,做一些操作,比如设置autocommit为0,比如记录当前连接的ip来源和用户等信息到一个新表里,当做登陆日志信息

1.设定字符集:init_connect='set autocommit=0; set names gbk;'

使用init_connect的注意点

1 只有超级账户才可以设置(super_priv权限)

2 超级账户无视init_connect设置(即init_connect的设置对来自超级账户的连接不生效)

在我们创建mysql数据库的时候我们经常会用到这句SQL:CREATE DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci。

那么这句sql的每一部分分别代表着什么?又有什么意义?在看了网上很多资料后想总结下。

我们将这句sql划分为三段:CREATE DATABASE `test` , DEFAULT CHARACTER SET utf8, COLLATE utf8_general_ci。

CREATE DATABASE `test` :代表的是创建数据库 test。

DEFAULT CHARACTER SET utf8 : 代表的是将该库的默认编码格式设置为utf8格式。

COLLATE utf8_general_ci : 代表的是数据库校对规则,utf8_bin将字符串中的每一个字符用二进制数据存储,区分大小写。utf8_genera_ci不区分大小写,ci为case insensitive的缩写,即大小写不敏感。utf8_general_cs区分大小写,cs为case sensitive的缩写,即大小写敏感。

如果觉得《MySQL数据库修改字符集为utf8mb4》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。