utf8升级utf8mb4

向右看齐 2022-09-16 04:55 363阅读 0赞

一、升级前

  1. mysql> SHOW VARIABLES LIKE 'character_set%';
  2. +--------------------------+----------------------------------+
  3. | Variable_name | Value |
  4. +--------------------------+----------------------------------+
  5. | character_set_client | utf8|
  6. | character_set_connection | utf8 |
  7. | character_set_database | utf8 |
  8. | character_set_filesystem | binary |
  9. | character_set_results | utf8 |
  10. | character_set_server | utf8 |
  11. | character_set_system | utf8 |
  12. | character_sets_dir | /usr/local/mysql/share/charsets/ |
  13. +--------------------------+----------------------------------+
  14. mysql> SHOW VARIABLES LIKE 'collation%';
  15. +----------------------+--------------------+
  16. | Variable_name | Value |
  17. +----------------------+--------------------+
  18. | collation_connection | utf8_general_ci |
  19. | collation_database | utf8_general_ci |
  20. | collation_server | utf8_general_ci |
  21. +----------------------+--------------------+

二、修改配置文件
打开MySQL的配置文件(vim /etc/my.cnf),将字符集的配置修改成如下:

  1. [client]
  2. default-character-set = utf8mb4
  3. [mysql]
  4. default-character-set = utf8mb4
  5. [mysqld]
  6. character-set-client-handshake = FALSE
  7. character-set-server = utf8mb4
  8. collation-server = utf8mb4_general_ci
  9. init_connect='SET NAMES utf8mb4'

三、升级后

  1. mysql> SHOW VARIABLES LIKE 'character_set%';
  2. +--------------------------+----------------------------------+
  3. | Variable_name | Value |
  4. +--------------------------+----------------------------------+
  5. | character_set_client | utf8mb4 |
  6. | character_set_connection | utf8mb4 |
  7. | character_set_database | utf8mb4 |
  8. | character_set_filesystem | binary |
  9. | character_set_results | utf8mb4 |
  10. | character_set_server | utf8mb4 |
  11. | character_set_system | utf8 |
  12. | character_sets_dir | /usr/local/mysql/share/charsets/ |
  13. +--------------------------+----------------------------------+
  14. 8 rows in set (0.00 sec)
  15. mysql> SHOW VARIABLES LIKE 'collation%';
  16. +----------------------+--------------------+
  17. | Variable_name | Value |
  18. +----------------------+--------------------+
  19. | collation_connection | utf8mb4_general_ci |
  20. | collation_database | utf8mb4_general_ci |
  21. | collation_server | utf8mb4_general_ci |
  22. +----------------------+--------------------+
  23. 3 rows in set (0.00 sec)
  24. 或者用这条命令:SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';
  25. +--------------------------+----------------------------------+
  26. | Variable_name | Value |
  27. +--------------------------+----------------------------------+
  28. | character_set_client | utf8mb4 |
  29. | character_set_connection | utf8mb4 |
  30. | character_set_database | utf8mb4 |
  31. | character_set_filesystem | binary |
  32. | character_set_results | utf8mb4 |
  33. | character_set_server | utf8mb4 |
  34. | character_set_system | utf8 |
  35. | character_sets_dir | /usr/local/mysql/share/charsets/ |
  36. | collation_connection | utf8mb4_general_ci |
  37. | collation_database | utf8mb4_general_ci |
  38. | collation_server | utf8mb4_general_ci |
  39. +--------------------------+----------------------------------+

系统变量 描述
character_set_client (客户端来源数据使用的字符集)
character_set_connection (连接层字符集)
character_set_database (当前选中数据库的默认字符集)
character_set_results (查询结果字符集)
character_set_server (默认的内部操作字符集)
这几个变量必须是utf8mb4。

四、 数据库连接的配置

  1. 数据库连接参数中:
  2. character=utf8会被自动识别为utf8mb4,也可以不加这个参数,会自动检测。
  3. autoReconnect=true是必须加上的。

五、 将数据库和已经建好的表也转换成utf8mb4

  1. 1、更改数据库编码:ALTER DATABASE backend CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
  2. 2、更改表编码:ALTER TABLE login_user CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
  3. 3、更改mysql字段的编码类型为utf8mb4TABLE login_user MODIFY COLUMN auth_key VARCHAR(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

总结
如果你觉得此文对你有一丁点帮助,点个赞。或者可以加入我的开发交流群:1025263163相互学习,我们会有专业的技术答疑解惑

如果你觉得这篇文章对你有点用的话,麻烦请给我们的开源项目点点star: http://github.crmeb.net/u/defu 不胜感激 !

发表评论

表情:
评论列表 (有 0 条评论,363人围观)

还没有评论,来说两句吧...

相关阅读