今天开发反应两样的程序往一个库里面插入数据正常,往另外一个库里面插入数据有乱码。第一反应就是两个数据库关于字符集的配置不一样。

在两个库分别查看参数:

show variables like "%char%";

+--------------------------+------------------------------------------+

| 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     | latin1                                   |

| character_set_system     | utf8                                     |

| character_sets_dir       | /usr/local/mysql/share/charsets/ |

+--------------------------+------------------------------------------+

>show variables like "%char%";

+--------------------------+------------------------------------------+

| 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/ |

+--------------------------+------------------------------------------+

可以看到character_set_server的参数配置不一样,于是将有问题的那个库配置成utf8,开发再次测试的时候表示还有乱码问题,这时想起来校验字符集没有改,于是分别查看两边校验字符集的差异:

>show variables like "%coll%";

+----------------------+-------------------+

| Variable_name        | Value             |

+----------------------+-------------------+

| collation_connection | utf8_general_ci   |

| collation_database   | utf8_general_ci   |

| collation_server     | latin1_swedish_ci |

+----------------------+-------------------+

>show variables like "%coll%";

+----------------------+-----------------+

| Variable_name        | Value           |

+----------------------+-----------------+

| collation_connection | utf8_general_ci |

| collation_database   | utf8_general_ci |

| collation_server     | utf8_general_ci |

+----------------------+-----------------+

可以看到collation_server 参数设置不一致,于是把这个参数也改成了utf8,再次测试的时候数据显示正常。

mysql支持多个层次的字符集设置:

服务层(server)、数据库层(database)、数据表(table)、字段(column)、连接(connection)、结果集(result)

优先级:server > database > table > column

为了避免出现因字符不一致导致的中文乱码的问题,最好就是将字符集全部设置成一样的。

另外提一下skip-character-set-client-handshake这个参数,可以通过开启这个参数来过滤客户端设置的字符集

转载于:https://blog.51cto.com/chenql/1975678

记一次mysql中文字符乱码的问题排查相关推荐

  1. myeclipse连接mysql生成数据表时中文字符乱码或问号(解决方法)

    myeclipse连接mysql生成数据表时中文字符乱码或问号(解决方法) 参考文章: (1)myeclipse连接mysql生成数据表时中文字符乱码或问号(解决方法) (2)https://www. ...

  2. 解决读取数据库里面中文字符乱码的问题

    最近做项目过程中要从数据库中读取一些字段,将这些字段先用实体类封装好,然后在其他java主程序中调用该字段进行匹配,奈何我操作了好几遍,总是显示数据库中中文字符乱码.数据库中样式如图1所示. 图1 数 ...

  3. php中文字符乱码,如何解决php中文字符乱码问题

    php中文字符乱码的解决办法:1.改mysql配置文件"my.ini"或"my.cnf":2.在需要做数据库操作的php程序前加入语句"mysql_q ...

  4. mysql的中文乱码url,MySQL 中文显示乱码

    MySQL 中文显示乱码 MySQL 中文显示乱码 如果你遇到乱码问题,可以从下面几个问题逐步检查: (1)检查你的文件存储编码是否和 meta 声明的一致,假如你的文件是按照 utf-8 编码存储, ...

  5. SpringMVC项目中中文字符乱码问题及解决办法总结(非专业最优解决办法) -- ajax传值乱码; request.getParameter()乱码;

    SpringMVC项目中中文字符乱码问题及解决办法总结(非专业最优解决办法) -- ajax传值乱码; request.getParameter()乱码; 参考文章: (1)SpringMVC项目中中 ...

  6. Javascript 中 atob 方法解码中文字符乱码问题

    解决 Javascript 中 atob 方法解码中文字符乱码问题 由于一些网络通讯协议的限制,你必须使用 window.btoa() 方法对原数据进行编码后,才能进行发送.接收方使用相当于 wind ...

  7. ssis 转换中文字符乱码_SSIS软件包中的字符映射转换

    ssis 转换中文字符乱码 This article explores the Character Map Transformation in SSIS package with available ...

  8. mysql 入库乱码,如何解决mysql中文入库乱码问题

    如何解决mysql中文入库乱码问题 1. mysql 入库乱码问题 解决办法 首先 安装的时候必须选择utf-8字符集 如果不是可以进行再次配置或者设置相关变量 (可以用 SHOW VARIABLES ...

  9. java ssh乱码_SSH框架下中文字符乱码问题的研究

    1 Java中文乱码问题的产生原因 在Java Web的应用中,中文字符乱码问题是个由来已久和让人头疼的问题,尤其是刚刚接触Java Web编程的人员,往往在解决中文字符乱码问题上花费了大量的时间和精 ...

最新文章

  1. 深度学习问题解决:Check failed: stream-parent()-GetConvolveAlgorithms( conv_parameters.ShouldIncludeWinogra
  2. codeigniter钩子的使用
  3. 使用百度云智能SDK和树莓派搭建简易的人脸识别系统 Python语言版
  4. Java描述设计模式(18):享元模式
  5. Junit4集成到Maven工程
  6. 跳转定义_HTML中的超级链接和锚点跳转
  7. 麦马计算机科学 UBC工程,2020年UBC文书题目
  8. Neo4j介绍与使用
  9. springMVC Model ModelMap 和 ModelAndView的区别
  10. 【游戏开发实战】Unity逆向怀旧经典游戏《寻秦OL》,解析二进制动画文件生成预设并播放(资源逆向 | 二进制 | C#)
  11. Labview与三菱PLC通讯 (2)
  12. Saving Tang Monk II(bfs+优先队列)
  13. 开启了国内弹幕文化的先河,实现B站弹幕很难么?这个开源项目了解一下
  14. java maven 读写pdf_Java向PDF模板写入数据
  15. vnc远程控制软件下载,四款神级能够下载的vnc远程控制软件
  16. android关于自定义Dialog中布局match_parent 属性 失效的问题
  17. winPE下安装系统ghost恢复系统图文详细教程
  18. JSP停车场车位管理系统myeclipse开发oracle数据库BS模式java编程网
  19. 2022年上海市安全员C证考试题库及答案
  20. 如何查看当前Word是即点即用版本还是安装版本

热门文章

  1. 稳定土厂拌设备控制系统-基本介绍(图)
  2. IIS7.5(IIS7)配置伪静态urlrewrite
  3. cocos2d(背景图片循环滚动)
  4. 命令行开发、编译、打包Android应用程序
  5. 最最基本的框架宏使用RUNTIME_CLASS DECLARE_DYNAMIC IMPLEMENT_RUNTIMECLASS
  6. 大数据之-Hadoop之HDFS_hadoop集群中的安全模式_操作案例---大数据之hadoop工作笔记0075
  7. 基于Session的认证方式_创建工程_准备一个springmvc的工程_Spring Security OAuth2.0认证授权---springcloud工作笔记115
  8. MyCat分布式数据库集群架构工作笔记0018---高可用_单表存储千万级_海量存储_水平分表划分原则
  9. SpringCloud工作笔记0104---SpringCloud和SpringCloudAlibaba的区别
  10. Netty工作笔记0024---SelectionKey API