mysql-utf8mb4问题!

摘要:
版本8.0.11Win:my.iniLinux:my.cnf1.修改mysql配置文件[client]default-character-set=utf8mb4[mysql];设置mysql客户端默认字符集default-character-set=utf8mb4[mysqld];设置3306端口port=3306;设置mysql的安装目录basedir=E:\mysql\mysql-8.0.11

版本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的字符集:

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%';命令查看字符集的情况

免责声明:文章转载自《mysql-utf8mb4问题!》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇icmp port unreachable在ORACLE中存储过程变量名和表字段名相同下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

mysql 字符串拼接

CONCAT() CONCAT_WS() GROUP_CONCAT() 一、CONCAT() : 最常用的字符串拼接方法,但遇到拼接中的字符串出现null的情况会返回null 语法:CONCAT(string1,string2) DEMO1 mysql > SELECT CONCAT(s_name,s_sex) FROM student +-...

navicat for mysql 进行数据传输

完成不同数据库之间的数据库表传输 把一个数据库表由一个数据库中复制到另一个数据库表中,可以使用heidisql 或 navicat for mysql,先将数据库表从一个数据库会话导出,然后会话连接相应库进行导入,类似一个备份的操作,但这样操作繁琐。navicat for mysql具备数据传输功能,直接将一个数据库的数据库表,复制到另一个数据库中。 1....

mysql用root用户给其他用户授权报错1044 access denied for user root

公司本地测试数据库一直使用root直接使用数据库,一直使用没问题 突然有一天,需要增加一个用户,并使用该用户进行操作数据库 在成功创建新用户后,开始想给用户授予最高权限,结果报错,1044 access denied for user root 我以为是无法创建同样的root用户 于是建了一个新数据库,newdb ,单独个新建用户增加newdb的权限,还是...

MySQL取每组的前N条记录

一、对分组的记录取前N条记录:例子:取前 2条最大(小)的记录 1 1.用子查询: 2 SELECT * FROM right2 a WHERE 2> 3 (SELECT COUNT(*) FROM right2 b WHERE b.id=a.id AND b.account>a.account) 4 ORDER BY a.id,a....

php实现SESSION跨域

稍微大一点的网站,通常都会有不只一个服务器,每个服务器运行着不同的功能模块或者不同的子系统,他们使用不同的二级域名,比如www.a.com、i.a.com、bbs.a.com。而一个整体性强的网站,用户系统是统一的,即一套用户名、密码在整个网站的各个子系统中都是可以登录使用的。各个服务器共享用户数据是比较容易实现的,只需要在后端放个数据库服务器,各个服务器...

字符编码及基本文件操作

字符编码和基本文件操作 字符编码 文字转换成数字就是强制转换 ASCII ASCII:美国信息交换标准码,现今通用的单字节编码系统 计算机最小的表示单位:bit(比特) 计算机最小的存储单位:bytes(字节),8b = 1bytes Unicode:万国语言编码 使用Unicode编码比ASCII编码需要多一倍的存储空间 UTF-8 将Unicode编码...