MySQL字符集utf8修改为utf8mb4的方法步骤

 更新时间:2019年07月12日 14:55:31   作者:茅十八  
这篇文章主要给大家介绍了关于MySQL字符集utf8修改为utf8mb4的方法步骤,文中通过示例代码介绍的非常详细,对大家学习或者使用MySQL具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

对于mysql 5.5 而言,如果不设定字符集,mysql默认的字符集是 latin1 拉丁文字符集;

但随着各种业务的进一步发展,除了各个国家的本身语言字符,经常也会有一些表情符号出现在应用程序中,而在mysql 5.5 之前,UTF-8编码只支持1-3个字节,支持BMP这部分的Unicode编码区;从MySQL 5.5开始,可以支持4个字节UTF编码 utf8mb4 ,一个字符能够支持更多的字符集,也能够支持更多表情符号。

utf8mb4兼容utf8,且比utf8能表示更多的字符,是utf8字符集的超集。所以现在一些新的业务,比如ISO等,会将MySQL数据库的字符集设置为utf8mb4。

今天在处理一个应用需求的时候,就遇到这样一个问题:

当然调整的最好方法是客户端,mysql数据库的字符集都修改为utf8mb4,但这样修改量比较大,而且如果客户端一部分修改为utf8,一部分为utf8mb4的话,容易发生混乱。

经过几次测试后,MySQL数据库的my.cnf中关于字符集的配置修改为下面的配置了:

[client] 
default-character-set=utf8mb4 
 
[mysqld] 
character-set-server = utf8mb4 
collation-server = utf8mb4_unicode_ci 
init_connect='SET NAMES utf8mb4' 
skip-character-set-client-handshake = true 
 
[mysql] 
default-character-set = utf8mb4 

使用MySQL字符集时的建议

• 建立数据库/表和进行数据库操作时尽量显式指出使用的字符集,而不是依赖于MySQL的默认设置,否则MySQL升级时可能带来很大困扰;

• 数据库和连接字符集都使用latin1时虽然大部分情况下都可以解决乱码问题,但缺点是无法以字符为单位来进行SQL操作,一般情况下将数据库和连接字符集都置为utf8是较好的选择;

• 使用mysql C API时,初始化数据库句柄后马上用mysql_options设定MYSQL_SET_CHARSET_NAME属性为utf8,这样就不用显式地用 SET NAMES语句指定连接字符集,且用mysql_ping重连断开的长连接时也会把连接字符集重置为utf8;

• 对于mysql PHP API,一般页面级的PHP程序总运行时间较短,在连接到数据库以后显式用SET NAMES语句设置一次连接字符集即可;但当使用长连接时,请注意保持连接通畅并在断开重连后用SET NAMES语句显式重置连接字符集。

全面了解mysql中utf8和utf8mb4的区别:https://www.jb51.net/article/90037.htm

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。

相关文章

  • MySQL数据库十大优化技巧

    MySQL数据库十大优化技巧

    WEB开发者不光要解决程序的效率问题,对数据库的快速访问和相应也是一个大问题。希望本文能对大家掌握MySQL优化技巧有所帮助。
    2011-03-03
  • MySQL中修改表结构时需要注意的一些地方

    MySQL中修改表结构时需要注意的一些地方

    这篇文章主要介绍了MySQL中修改表结构时需要注意的一些地方,作者援引Percona的相关的说明来讲述如何避免相关操作导致表无法使用的问题,一些需要的朋友可以参考下
    2015-06-06
  • MySQL的几种安装方式及配置问题小结

    MySQL的几种安装方式及配置问题小结

    这篇文章主要介绍了MySQL的几种安装方式及配置,然后在文章底部给大家介绍了安装过程中的问题总结,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-07-07
  • Mysql 5.7.18安装方法及启动MySQL服务的过程详解

    Mysql 5.7.18安装方法及启动MySQL服务的过程详解

    这篇文章主要介绍了Mysql 5.7.18安装方法及启动MySQL服务的过程,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-05-05
  • 详解MySQL存储过程的创建和调用

    详解MySQL存储过程的创建和调用

    这篇文章主要为大家介绍了MySQL存储过程的创建和调用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-12-12
  • mysql索引对排序的影响实例分析

    mysql索引对排序的影响实例分析

    这篇文章主要介绍了mysql索引对排序的影响,结合实例形式分析了mysql使用索引提高排序速度的相关操作技巧,需要的朋友可以参考下
    2019-07-07
  • mysql 数据库备份和还原方法集锦 推荐

    mysql 数据库备份和还原方法集锦 推荐

    本文讨论 MySQL 的备份和恢复机制,以及如何维护数据表,包括最主要的两种表类型:MyISAM 和 Innodb,文中设计的 MySQL 版本为 5.0.22。
    2010-03-03
  • MySQL函数Locate的使用详解

    MySQL函数Locate的使用详解

    本文主要介绍了MySQL函数Locate的使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • 解决启动MySQL服务时出现"mysql本地计算机上的MySQL服务启动后停止"的问题

    解决启动MySQL服务时出现"mysql本地计算机上的MySQL服务启动后停止"的问题

    某一天我的MySQL启动突然出现了异常:“mysql本地计算机上的MySQL服务启动后停止,某些在未由其他服务或程序使用时将自动停止,” ,小编在网络上面找了很多方法,MySQL启动成功了,但是第二天开启MySQL时还是出现了这个问题,现把两种方法总结一下,需要的朋友可以参考下
    2023-11-11
  • Mysql数据库常用命令操作大全

    Mysql数据库常用命令操作大全

    这篇文章主要介绍了Mysql常用命令操作方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03

最新评论