mysql 字符集排查

库级别

SELECT
*
FROM
information_schema.schemata
WHERE
schema_name NOT IN ( 'information_schema', 'performance_schema', 'mysql', 'sys' )
AND ( default_character_set_name <> 'utf8' OR default_collation_name <> 'utf8_general_ci' );

表级别

SELECT
TABLE_SCHEMA,
TABLE_NAME,
TABLE_TYPE,
TABLE_ROWS,
TABLE_COLLATION,
CREATE_OPTIONS
FROM
information_schema.TABLES
WHERE
TABLE_TYPE = 'BASE TABLE'
AND TABLE_SCHEMA NOT IN ('information_schema' , 'performance_schema', 'mysql', 'sys')
AND TABLE_COLLATION <> 'utf8_general_ci';

字段级别

SELECT
TABLE_SCHEMA AS '库名',
DEFAULT_CHARACTER_SET_NAME AS '库的字符集',
DEFAULT_COLLATION_NAME AS '库的校对字符集',
TABLE_NAME AS '表名',
TABLE_COLLATION AS '表的校对规则',
COLUMN_NAME AS '字段名',
CHARACTER_SET_NAME AS '字段的字符集',
COLLATION_NAME AS '字段的校对规则'
FROM
(SELECT
C2.TABLE_SCHEMA,
C2.TABLE_NAME,
C2.CHARACTER_SET_NAME,
T2.TABLE_COLLATION,
C2.COLUMN_NAME,
C2.COLLATION_NAME,
S2.DEFAULT_CHARACTER_SET_NAME,
S2.DEFAULT_COLLATION_NAME,
CASE
WHEN
S2.DEFAULT_CHARACTER_SET_NAME = 'utf8'
AND S2.DEFAULT_COLLATION_NAME = 'utf8_general_ci'
AND (C2.CHARACTER_SET_NAME = 'utf8'
OR C2.CHARACTER_SET_NAME IS NULL)
AND (C2.COLLATION_NAME = 'utf8_general_ci'
OR C2.COLLATION_NAME IS NULL)
AND T2.TABLE_COLLATION = 'utf8_general_ci'
THEN
'true'
ELSE 'false'
END STATUS
FROM
information_schema.COLUMNS AS C2
JOIN (SELECT
TABLE_SCHEMA,
TABLE_NAME,
TABLE_TYPE,
TABLE_ROWS,
TABLE_COLLATION,
CREATE_OPTIONS
FROM
information_schema.TABLES
WHERE
TABLE_TYPE = 'BASE TABLE'
AND TABLE_SCHEMA NOT IN ('information_schema' , 'sys', 'performance_schema', 'mysql')) T2 ON C2.TABLE_NAME = T2.TABLE_NAME
AND C2.TABLE_SCHEMA = T2.TABLE_SCHEMA
JOIN (SELECT
SCHEMA_NAME,
DEFAULT_CHARACTER_SET_NAME,
DEFAULT_COLLATION_NAME
FROM
information_schema.SCHEMATA) S2 ON T2.TABLE_SCHEMA = S2.SCHEMA_NAME) charset_status
WHERE
STATUS = 'false'
ORDER BY TABLE_SCHEMA , TABLE_NAME;
  • 表默认排序规则。输出未显式列出表默认字符集,但排序规则名称以字符集名称开头。

mysql 字符集排查的更多相关文章

  1. [转]关于Navicat和MYSQL字符集不统一出现的中文乱码问题

    原文链接:关于Navicat和MYSQL字符集不统一出现的中文乱码问题 最近遇到一串关于MYSQL中文乱码的问题,问题背景是这样的: 在此之前,服务器上安装好MySQL之后就立马重新配置了字符集为ut ...

  2. 如何修改MySQL字符集

    首先,MySQL的字符集问题主要是两个概念,一个是Character Sets,一个是Collations,前者是字符内容及编码,后者是对前者进行比较操作的一些规则.这两个参数集可以在数据库实例.单个 ...

  3. Mysql字符集设置

    转 基本概念 • 字符(Character)是指人类语言中最小的表义符号.例如’A'.’B'等:• 给定一系列字符,对每个字符赋予一个数值,用数值来代表对应的字符,这一数值就是字符的编码(Encodi ...

  4. MySQL字符集

    字符集的选择 1.如果数据库只需要支持中文,数据量很大,性能要求也很高,应该选择双字节定长编码的中文字符集(如GBK).因为相对于UTF-8而言,GBK"较小",每个汉字只占2个字 ...

  5. mysql5.5字符集设置的一点变化(对于中文乱码问题,需要设置mysql字符集)

    工作中因为字符集问题没少头疼,还犯过一次错误,还好拯救及时,没有发生重大事故,唉,弄清楚点还是非常有必要的: 例如我的工作环境为CTR+redhat5+mysql5.5 在导入sql语句的时候必须要注 ...

  6. Mysql字符集知识总结

    字符集&字符编码方式 字符集(Character set)是多个字符的集合,字符集种类较多,每个字符集包含的字符个数不同,这里的字符可以是英文字符,汉字字符,或者其他国家语言字符. 常见字符集 ...

  7. MySQL字符集的修改和查看

    1.关于MySQL字符集 MySQL的字符集支持(Character Set Support)有两个方面: 字符集(Character set)和排序方式(Collation). MySQL对于字符集 ...

  8. MySQL字符集转换引发插入乱码问题

    根据http://www.cnblogs.com/cchust/p/4601536.html进行验证测试 问题背景 在mysql上面执行一条普通的insert语句,结果报错: Incorrect st ...

  9. MySQL 字符集设置

    /*************************************************************************** * MySQL 字符集设置 * 说明: * 数 ...

随机推荐

  1. HTTPS 通俗简介

    为什么需要HTTPS 9个问题搞懂 https 来源 HTTP是明文传输的,也就意味着,介于发送端.接收端中间的任意节点都可以知道你们传输的内容是什么.这些节点可能是路由器.代理 等. 举个最常见的例 ...

  2. centos7.5 安装 redis-4.0.11

    1.下载redis包 wget wget http://download.redis.io/releases/redis-4.0.11.tar.gz 2.解压安装 #解压 .tar.gz #安装 cd ...

  3. 1.1.3 A+B for Input-Output Practice (III)

    A+B for Input-Output Practice (III) Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 ...

  4. shell 脚本实战笔记(4)--linux磁盘分区重新挂载

    背景: Hadoop的HDFS文件系统的挂载, 默认指定的文件目录是/mnt/disk{N}. 当运维人员, 不小心把磁盘挂载于其他目录, 比如/mnt/data, /mnt/disk01, /mnt ...

  5. Laravel学习之旅(三)

    视图 一.怎么新建视图: 1.视图默认存放路径:resources/views: 2.laravel模板支持原生的PHP,直接可以在resources/views新建一个PHP文件,例如: index ...

  6. HDU 2108 逆时针给出多边形的顶点,判断是否为凸多边形,水题

    下面是别人解题报告的链接,很详细,写的很好 http://blog.csdn.net/chl_3205/article/details/8520597 下面贴我的代码 #include <cst ...

  7. 前端jquery---表单验证

    重点: 1.表单的提交 2.触发blur事件 3.判断是否正确,提交与否 return False <!DOCTYPE html> <html lang="en" ...

  8. 字符串匹配--(K)MP模板

    大白书型模板,并没有写成函数形式: 这个是下标从0开始的: 此外,对于一个长度为 m 的串自匹配,在此模板中 m-p[m] 就是这个串的最小循环节长度(最后一个循环可以不完整) 另一个关于自匹配后的失 ...

  9. test20190320 全连(fc)

    题意 全连(fc) [题目背景] 还记得若干年前那段互相比较<克罗地亚狂想曲>的分数的日子吗? [题目描述] E.Space 喜欢打音游. 但是他技术不好,总是拿不到全连(Full Com ...

  10. stenciljs 学习三 组件生命周期

    stenciljs 组件包含好多生命周期方法, will did load update unload 实现生命周期的方法比价简单类似 componentWillLoad ....,使用typescr ...