mysql-utf8mb4问题!

版本8.0.11 
Win:my.ini

Linux:my.cnf

1.修改mysql配置文件

[client]
default-character-set = utf8mb4

[mysql]
; 设置mysql客户端默认字符集
default-character-set=utf8mb4
[mysqld]
;设置3306端口
port = 3306 
; 设置mysql的安装目录
basedir=E:\\mysql\\mysql-8.0.11-winx64
; 设置mysql数据库的数据的存放目录
datadir=E:\\mysql\\mysql-8.0.11-winx64\\data
; 允许最大连接数
max_connections=200
; 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8mb4
; 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB

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

2.修改database/table和column的字符集

进入mysql中,按下述所示进行命令的执行:

1) 修改database的字符集:

ALTER DATABASE 数据库名 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

示例:

ALTER DATABASE xxxdb CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

2) 步骤1)执行完成之后,需要执行use 数据库名,指明当前需要进行字符集修改的数据库;示例:use xxxdb;

3)修改table的字符集:

扫描二维码关注公众号,回复: 1579794 查看本文章

ALTER TABLE 表名 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

示例:

ALTER TABLE user_comments CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

4) 修改column的字符集:

ALTER TABLE 表名 CHANGE 字段名 字段名 该字段原来的数据类型 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

示例:

ALTER TABLE user_comments CHANGE content content TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

 

上述修改完毕,exit退出mysql

 3.重启mysql

这里重启的时候我一开始用的是service mysql restart,最后发现这条命令并不管用,重启没有成功,导致后面查看字符集的时候,并没有达到想要的字符集的状态。 所以采用下面的方法才可以正确的重启mysql. 3.1停止msql的运行 通过/etc/init.d/mysql执行stop命令 3.2启动mysql 通过/etc/init.d/mysql执行start命令

停止msql的运行 net stop mysql命令

启动mysql net start mysql命令

4.检查字符集

进入mysql中,用SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';命令查看字符集的情况

猜你喜欢

转载自www.cnblogs.com/bkylkh/p/9176215.html