• mysql字符集&排序规则


    mysql字符集&排序规则

    查看当前MySQL实例中不符合字符集&排序规则规范的库名:

    SELECT
    SCHEMA_NAME '数据库',
    DEFAULT_CHARACTER_SET_NAME '库字符集',
    DEFAULT_COLLATION_NAME '库排序规则'
    FROM
    information_schema.SCHEMATA 
    WHERE
    (DEFAULT_CHARACTER_SET_NAME != 'utf8mb4' OR DEFAULT_COLLATION_NAME != 'utf8mb4_unicode_ci')
    AND SCHEMA_NAME NOT IN ( 'sys', 'mysql', 'performance_schema', 'information_schema' );
    

    查看当前MySQL实例中不符合排序规范的表:

    SELECT TABLE_SCHEMA '数据库',TABLE_NAME '表',TABLE_COLLATION '表排序规则',TABLE_ROWS '表行数' FROM information_schema.TABLES WHERE TABLE_COLLATION != 'utf8mb4_unicode_ci' and TABLE_SCHEMA not in ('sys','mysql','performance_schema','information_schema');
    

    注意:修改 表 以及 表字段 的字符集、排序集之前,需要先修改 库 的 字符集、排序集

    如果是大表,那需要用到 gh-ost 来执行

    修改 数据库 的 字符集、排序规则:

    SELECT
    SCHEMA_NAME '数据库',
    DEFAULT_CHARACTER_SET_NAME '库字符规则',
    DEFAULT_COLLATION_NAME '库排序规则',
    CONCAT( 'ALTER DATABASE ', SCHEMA_NAME, ' DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;' ) '修正库规则SQL' 
    FROM
    information_schema.SCHEMATA 
    WHERE
    (DEFAULT_CHARACTER_SET_NAME != 'utf8mb4' OR DEFAULT_COLLATION_NAME != 'utf8mb4_unicode_ci')
    AND SCHEMA_NAME NOT IN ( 'sys', 'mysql', 'performance_schema', 'information_schema' );
    

    修改 表 以及 表字段 的字符集、排序规则:

    SELECT TABLE_SCHEMA '数据库',TABLE_NAME '表',TABLE_COLLATION '排序规则',CONCAT('ALTER TABLE ',TABLE_SCHEMA,'.', TABLE_NAME, ' CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;') '修正表规则SQL' FROM information_schema.TABLES WHERE TABLE_COLLATION != 'utf8mb4_unicode_ci' and TABLE_SCHEMA not in ('sys','mysql','performance_schema','information_schema');
    

  • 相关阅读:
    面试问题记录
    面试问题记录
    面试问题记录
    JavaScript => ?
    Jsr303数据校验
    在浏览器上开发GO和Vue!(基于code-server)
    IdentityServer4 4.0.0
    9/13-9/18
    9/6-9/10
    8/30-9/3
  • 原文地址:https://www.cnblogs.com/carry00/p/14238945.html
Copyright © 2020-2023  润新知