一、实验环境

操作系统: CentOS7.5 Minimal

IP: 192.168.1.102

二、查看MySQL运行状态

# systemctl status mysqld.service

三、设置MySQL字符集

设置MySQL字符集为utf8

# cat /etc/systemd/system/mysqld.service

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

[Unit]

Description=MySQL Server

After=network-online.target docker.service

Requires=docker.service

[Service]

ExecStartPre=-/usr/bin/docker rm -f mysql

ExecStart=/usr/bin/docker run \

--name mysql \

-p 192.168.1.102:3306:3306 \

-e UMASK=0600 \

-e UMASK_DIR=0700 \

-e MYSQL_HISTFILE=/dev/null \

-v /opt/mysqldata:/var/lib/mysql \

-v /opt/mysqlconfig/mysqld.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf \

mysql:5.7.20

ExecStop=/usr/bin/docker stop mysql

LimitNOFILE=65535

Restart=on-failure

StartLimitBurst=3

StartLimitInterval=60s

[Install]

WantedBy=multi-user.target

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

#  cat   /opt/mysqlconfig/mysqld.cnf  | grep -Ev "^$|^#"

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

[mysqld]

pid-file        = /var/run/mysqld/mysqld.pid

socket          = /var/run/mysqld/mysqld.sock

datadir        = /var/lib/mysql

symbolic-links    = 0

max_connections  = 2000

skip_name_resolve

character-set-client-handshake = FALSE

character-set-server =  utf8

collation-server    =  utf8_general_ci

init_connect="SET NAMES 'utf8'"

[mysql]

default-character-set  = utf8

[client]

default-character-set  = utf8

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

#  systemctl  restart mysqld

# mysql -u root -h 192.168.1.102 -p"MySQL@123"   -e  "show variables like 'character_set_%';"

设置MySQL字符集为utf8mb4

# cat /opt/mysqlconfig/mysqld.cnf | grep -Ev "^$|^#"

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

[mysqld]

pid-file        = /var/run/mysqld/mysqld.pid

socket          = /var/run/mysqld/mysqld.sock

datadir        = /var/lib/mysql

symbolic-links    = 0

max_connections  = 2000

skip_name_resolve

character-set-client-handshake = FALSE

character-set-server =  utf8mb4

collation-server    =  utf8mb4_unicode_ci

init_connect="SET NAMES 'utf8mb4'"

[mysql]

default-character-set  = utf8mb4

[client]

default-character-set  = utf8mb4

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

#  systemctl  restart mysqld

# mysql -u root -h 192.168.1.102 -p"MySQL@123" -e "SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';"

四、MySQL中的排序规则utf8_unicode_ci、utf8_general_ci的区别

MySQL中utf8_general_ci与utf8_unicode_ci有什么区别呢?

在编程语言中,通常用unicode对中文字符做处理,防止出现乱码,那么在MySQL里,为什么大家都使用utf8_general_ci而不是utf8_unicode_ci呢?

ci是 case insensitive, 即 "大小写不敏感", x 和 X会在字符判断中会被当做一样的,bin 是二进制, x和 X会别区别对待。

例如你运行: SELECT * FROM table WHERE txt = 'x'

那么在utf8_bin中你就找不到 txt = 'X' 的那一行, 而 utf8_general_ci 则可以

utf8_general_ci 不区分大小写,这个你在注册用户名和邮箱的时候就要使用

utf8_general_cs 区分大小写,如果用户名和邮箱用这个 就会照成不良后果

utf8_bin:字符串每个字符串用二进制数据编译存储,区分大小写,而且可以存二进制的内容

MySQL5.1中文手册中关于utf8_unicode_ci与utf8_general_ci的说明

如果你想使用gb2312编码,那么建议你使用latin1作为数据表的默认字符集,这样就能直接用中文在命令行工具中插入数据,并且可以直接显示出来.而不要使用gb2312或者gbk等字符集,如果担心查询排序等问题,可以使用binary属性约束。

utf8_unicode_ci和utf8_general_ci对中、英文来说没有实质的差别。

utf8_general_ci校对速度快,但准确度稍差。

utf8_unicode_ci准确度高,但校对速度稍慢。

如果你的应用有德语、法语或者俄语,请一定使用utf8_unicode_ci。一般用utf8_general_ci就够了。

1、对于一种语言仅当使用utf8_unicode_ci排序做的不好时,才执行与具体语言相关的utf8字符集校对规则。例如,对于德语和法语,utf8_unicode_ci工作的很好,因此不再需要为这两种语言创建特殊的utf8校对规则。

2、utf8_general_ci也适用与德语和法语,除了‘?'等于‘s',而不是‘ss'之外。如果你的应用能够接受这些,那么应该使用 utf8_general_ci,因为它速度快。否则,使用utf8_unicode_ci,因为它比较准确。

用一句话概况上面这段话:utf8_unicode_ci比较准确,utf8_general_ci速度比较快。通常情况下 utf8_general_ci的准确性就够我们用的了,在我看过很多程序源码后,发现它们大多数也用的是utf8_general_ci,所以新建数据 库时一般选用utf8_general_ci就可以了!

五、参考

MySQL数据库字符集设置

https://www.jianshu.com/p/d9dc58f68822

MySQL中utf8和utf8mb4区别

http://ourmysql.com/archives/1402

MySQL 5.7.20 编码由 utf8 改为 utf8mb4

https://www.lovesofttech.com/database/mysql5.7ToUtf8mb4

MySQL使用utf8mb4经验吐血总结

http://seanlook.com/2016/10/23/mysql-utf8mb4

全面了解MySQL中utf8和utf8mb4的区别

https://my.oschina.net/xsh1208/blog/1052781

MySQL utf8 vs utf8mb4 – What’s the difference between utf8 and utf8mb4?

https://www.eversql.com/mysql-utf8-vs-utf8mb4-whats-the-difference-between-utf8-and-utf8mb4

【MySQL】设置MySQL字符集相关推荐

  1. mysql设置utf8_unicode_ci字符集php页面输出??乱码的解决方法

    MySQL对中文的支持程度还是很有限的,尤其是新手,但凡出现乱码问题,就会头大. 乱码问题1:用PHPmyAdmin操作MySQL数据库汉字显示正常,但用PHP网页显示MySQL数据时所有汉字都变成了 ...

  2. mac mysql 默认字符集_MacOS中Mysql设置默认字符集

    一.查看字符集 mysql> show variables like 'character%'; +--------------------------+-------------------- ...

  3. mysql安装设置mysql字符集utf8及修改密码

    MySQL的下载,建议下载MySQL的解压缩版本 MySQL官网下载推荐别下最新版本的原因是因为很多之前用的jar包和工具类不兼容最新版本的 可以下5.多的和六点多的 这样的压缩包解压再配置就行了 安 ...

  4. MySql·设置字符集编码

    MySql·设置字符集编码 查看版本号 SELECT version(): 查看数据库的字符编码 命令行登录数据库 mysql -uroot -p 输入: \s 查看字符编码明细 show varia ...

  5. linux安装mysql、卸载mysql、设置mysql

    linux下安装mysql: yum install mysql-server yum install mysql-devel 启动mysql: service mysqld start 卸载mysq ...

  6. MySQL—01—MySQL介绍和安装

    一. MySQL 简介 1 什么是 MySQL MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司.MySQL 是一种关系型数据库管理系统,关系型 ...

  7. [MySql] - Windows MySql 8.x 手动zip包安装与外网访问登录权限设定

    MySql 8.x官方下载地址 https://dev.mysql.com/downloads/mysql/8.0.html https://cdn.mysql.com//Downloads/MySQ ...

  8. 安装多个mysql及mysql服务

    在windows环境下安装多个mysql及mysql服务 第一步:到官网下载所需的mysql,里面含有最新版本和历史版本 第二步:解压mysql文件创建data文件夹,和my.ini 文件 当多个my ...

  9. MySQL 基础——MySQL 起步

    要点 MySQL 8.0 安装步骤 解压mysql-8.0.28-winx64.zip,解压在 D:\SystemConfig\SQL\mysql-8.0.28-winx64 刚解压完是没有data文 ...

  10. ci框架 乱码 mysql_mysql设置utf8_unicode_ci字符集php页面输出??乱码的解决方法

    mysql设置utf8_unicode_ci字符集php页面输出??乱码的解决方法 作者:吕海鹏 文章来源:itstudy原创 发表时间:2008-10-18 11:15:08 阅读次数:今日:5 本 ...

最新文章

  1. air调用java,AIR2.0入门教程:与Java应用交互
  2. Vista下的程序集缓存卸载方法,也就是C:\Windows\assembly之下的卸载方法
  3. webpack 实践笔记(一)--- 入门
  4. 用汇编的眼光看C++(之判断流程)
  5. 算法学习之循环结构程序设计
  6. python中transform用法_Python Wand transform()用法及代码示例
  7. PostgreSQL中的pg_hba.conf
  8. Android中动态获取Drawable中的图片
  9. vue php 加载速度,Vue加载优化,速度提高一倍。
  10. 【Spark】sparksql中使用自定义函数
  11. MySQL Study之--MySQL下图形工具的使用(phpMyAdmin)
  12. 如何选择项目管理软件?
  13. 视频教程:小型登陆系统(完)
  14. 微软官网下载win10系统
  15. php代码加nofollow,给WordPress友情链接添加Nofollow方法详解
  16. 大型3d射击类游戏源码【突击风暴】,中文版本,可私服
  17. 解决pytorch官网下载慢ubuntu16.04+anaconda3(python3.6)+pytorch0.4.1+cuda9.0+cudnn7.1安装指南
  18. React从零开始搭建项目
  19. Spring+SpringMVC+MyBatis+easyUI整合优化篇(五)MockMvc服务端的单元测试
  20. 攻防世界——pwn_forgot

热门文章

  1. [华为matepad pro 12.6]实现平板编程(Xfce4篇)(Termux+Ubuntu21.04+Xfce4+VNC)
  2. Flowable定时器与实时流程图
  3. WineQQ 转自 清风的网络空间
  4. 水果店早读课:开水果店用什么进货,精品水果店从哪里进货
  5. 开关电源的纹波和噪声
  6. jython 导入java包_在jython中导入java类
  7. 从项目管理角度谈OA流程优化
  8. 新版神舟战神ZX9游戏本 评测
  9. NFT行业名词、用语篇
  10. 顺差和逆差,哪个好点?