zoukankan      html  css  js  c++  java
  • utf8mb4复杂昵称问题

    wechat_ling
    wl_channel_consumer  nickname
    wl_consumer nickname
    
    alter table wl_channel_consumer modify column `nickname` varchar(150) CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_unicode_ci' DEFAULT NULL COMMENT '昵称';
    alter table wl_consumer modify column `nickname` varchar(255) CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_unicode_ci' DEFAULT NULL COMMENT '昵称';
    1366
    # 全局已经是mb4,没必要指定列级字符编码
    
    mysql> show variables like '%chara%';
    +--------------------------+----------------------------------+
    | Variable_name            | Value                            |
    +--------------------------+----------------------------------+
    | character_set_client     | utf8                             |
    | character_set_connection | utf8                             |
    | character_set_database   | utf8                             |
    | character_set_filesystem | binary                           |
    | character_set_results    | utf8                             |
    | character_set_server     | utf8                             |
    | character_set_system     | utf8                             |
    | character_sets_dir       | /usr/local/mysql/share/charsets/ |
    +--------------------------+----------------------------------+
    8 rows in set (0.00 sec)
    
    +--------------------------+----------------------------------+
    | Variable_name            | Value                            |
    +--------------------------+----------------------------------+
    | character_set_client     | utf8mb4                          |
    | character_set_connection | utf8mb4                          |
    | character_set_database   | utf8mb4                          |
    | character_set_filesystem | binary                           |
    | character_set_results    | utf8mb4                          |
    | character_set_server     | utf8mb4                          |
    | character_set_system     | utf8                             |
    | character_sets_dir       | /usr/local/mysql/share/charsets/ |
    +--------------------------+----------------------------------+
    
    1. MySQL的版本

    utf8mb4的最低mysql版本支持版本为5.5.3+,若不是,请升级到较新版本。

    2. MySQL驱动

    5.1.34可用,最低不能低于5.1.13

    3.修改MySQL配置文件

    修改mysql配置文件my.cnf(windows为my.ini)
    my.cnf一般在etc/mysql/my.cnf位置。找到后请在以下三部分里添加如下内容:
    [client]
    default-character-set = utf8mb4
    [mysql]
    default-character-set = utf8mb4
    [mysqld]
    character-set-client-handshake = FALSE
    character-set-server = utf8mb4
    collation-server = utf8mb4_unicode_ci
    init_connect='SET NAMES utf8mb4'

    1. 重启数据库,检查变量
      SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';

    Variable_name Value
    character_set_client utf8mb4
    character_set_connection utf8mb4
    character_set_database utf8mb4
    character_set_filesystem binary
    character_set_results utf8mb4
    character_set_server utf8mb4
    character_set_system utf8
    collation_connection utf8mb4_unicode_ci
    collation_database utf8mb4_unicode_ci
    collation_server utf8mb4_unicode_ci
    collation_connection 、collation_database 、collation_server是什么没关系。

    但必须保证

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

    5. 数据库连接的配置

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

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

    更改数据库编码:ALTER DATABASE caitu99 CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

    更改表编码:ALTER TABLE TABLE_NAME CONVERT TO CHARACTER SET utf8mb4 COLLATEutf8mb4_general_ci;
    如有必要,还可以更改列的编码

  • 相关阅读:
    题解 nflsoj204 排列
    题解 CF1328 D,E,F Carousel, Tree Queries, Make k Equal
    题解 LOJ3277 「JOISC 2020 Day3」星座 3
    题解 nflsoj464 CF1267K 正睿1225:一个简单的计数技巧
    题解 CF1326F2 Wise Men (Hard Version)
    题解 CF1326E Bombs
    题解 CF1316E and UOJ495:一类结合贪心的背包问题
    仓鼠的DP课 学习笔记
    题解 CF1314B Double Elimination
    固件
  • 原文地址:https://www.cnblogs.com/jenvid/p/10180351.html
Copyright © 2011-2022 走看看