mysql 字符集排查

库级别

  1. SELECT
  2. *
  3. FROM
  4. information_schema.schemata
  5. WHERE
  6. schema_name NOT IN ( 'information_schema', 'performance_schema', 'mysql', 'sys' )
  7. AND ( default_character_set_name <> 'utf8' OR default_collation_name <> 'utf8_general_ci' );

表级别

  1. SELECT
  2. TABLE_SCHEMA,
  3. TABLE_NAME,
  4. TABLE_TYPE,
  5. TABLE_ROWS,
  6. TABLE_COLLATION,
  7. CREATE_OPTIONS
  8. FROM
  9. information_schema.TABLES
  10. WHERE
  11. TABLE_TYPE = 'BASE TABLE'
  12. AND TABLE_SCHEMA NOT IN ('information_schema' , 'performance_schema', 'mysql', 'sys')
  13. AND TABLE_COLLATION <> 'utf8_general_ci';

字段级别

  1. SELECT
  2. TABLE_SCHEMA AS '库名',
  3. DEFAULT_CHARACTER_SET_NAME AS '库的字符集',
  4. DEFAULT_COLLATION_NAME AS '库的校对字符集',
  5. TABLE_NAME AS '表名',
  6. TABLE_COLLATION AS '表的校对规则',
  7. COLUMN_NAME AS '字段名',
  8. CHARACTER_SET_NAME AS '字段的字符集',
  9. COLLATION_NAME AS '字段的校对规则'
  10. FROM
  11. (SELECT
  12. C2.TABLE_SCHEMA,
  13. C2.TABLE_NAME,
  14. C2.CHARACTER_SET_NAME,
  15. T2.TABLE_COLLATION,
  16. C2.COLUMN_NAME,
  17. C2.COLLATION_NAME,
  18. S2.DEFAULT_CHARACTER_SET_NAME,
  19. S2.DEFAULT_COLLATION_NAME,
  20. CASE
  21. WHEN
  22. S2.DEFAULT_CHARACTER_SET_NAME = 'utf8'
  23. AND S2.DEFAULT_COLLATION_NAME = 'utf8_general_ci'
  24. AND (C2.CHARACTER_SET_NAME = 'utf8'
  25. OR C2.CHARACTER_SET_NAME IS NULL)
  26. AND (C2.COLLATION_NAME = 'utf8_general_ci'
  27. OR C2.COLLATION_NAME IS NULL)
  28. AND T2.TABLE_COLLATION = 'utf8_general_ci'
  29. THEN
  30. 'true'
  31. ELSE 'false'
  32. END STATUS
  33. FROM
  34. information_schema.COLUMNS AS C2
  35. JOIN (SELECT
  36. TABLE_SCHEMA,
  37. TABLE_NAME,
  38. TABLE_TYPE,
  39. TABLE_ROWS,
  40. TABLE_COLLATION,
  41. CREATE_OPTIONS
  42. FROM
  43. information_schema.TABLES
  44. WHERE
  45. TABLE_TYPE = 'BASE TABLE'
  46. AND TABLE_SCHEMA NOT IN ('information_schema' , 'sys', 'performance_schema', 'mysql')) T2 ON C2.TABLE_NAME = T2.TABLE_NAME
  47. AND C2.TABLE_SCHEMA = T2.TABLE_SCHEMA
  48. JOIN (SELECT
  49. SCHEMA_NAME,
  50. DEFAULT_CHARACTER_SET_NAME,
  51. DEFAULT_COLLATION_NAME
  52. FROM
  53. information_schema.SCHEMATA) S2 ON T2.TABLE_SCHEMA = S2.SCHEMA_NAME) charset_status
  54. WHERE
  55. STATUS = 'false'
  56. 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. STL标准库-一个万用的hash function

    技术在于交流.沟通,本文为博主原创文章转载请注明出处并保持作品的完整性 在前面我介绍过hash的使用,本次主要介绍一下Hash Function Hash Function即获得hash code的函 ...

  2. 玩转树莓派:OpenHAB的入门(一)

    如果你对那些仅仅只是为了控制一盏灯而不得不下载一个特定的App的智能家居感到厌烦,这里有个好消息:OpenHAB可以为你实现最灵活的控制智能家居,OpenHAB是一个成熟的,开源的家庭自动化平台,既可 ...

  3. 解决tensorflow的"Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA Using TensorFlow backend."警告问题

    问题描述 程序开始运行的时候报出警告:I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructio ...

  4. shell 脚本实战笔记(10)--spark集群脚本片段念念碎

    前言: 通过对spark集群脚本的研读, 对一些重要的shell脚本技巧, 做下笔记. *). 取当前脚本的目录 sbin=`dirname "$0"` sbin=`cd &quo ...

  5. 【c++基础】判断是否到文件末尾-eof函数

    前言 读取文件内容时,需要判断是否到文件末尾,此时用到eof函数. 函数定义 Check whether eofbit is set Returns true if theeofbiterror st ...

  6. 【linux基础】core dump debug

    1.check core dump; ulimit -c or ulimit -a nvidia@tegra-ubuntu:~$ ulimit -a core data seg size (kbyte ...

  7. 压力测试命令行工具SuperBenchmarker

    压力测试命令行工具SuperBenchmarker SuperBenchmarker 是ㄧ个开源的类似于Apache ab的压力测试命令行工具.可以在 .NET 4.52+ 或者 .NET Core ...

  8. (2)bytes类型

    bytes类型就是字节类型 把8个二进制一组称为一个byte,用16进制来表示 Python2里面字符串其实更应该称为字节串,但是python2里面有一个类型是butes,所以在Python2里面by ...

  9. 使用Visual Studio Code开发Asp.Net Core WebApi学习笔记(十)-- 发布(Windows)

    本篇将在这个系列演示的例子上继续记录Asp.Net Core在Windows上发布的过程. Asp.Net Core在Windows上可以采用两种运行方式.一种是自托管运行,另一种是发布到IIS托管运 ...

  10. ES6必知必会 (一)—— 变量声明和结构赋值

    本文章属于个人对es6一些比较常用的语法的总结归纳,其主要参考阮一峰大神的<a href="http://es6.ruanyifeng.com//">ECMAScrip ...