[转]关于Navicat和MYSQL字符集不统一出现的中文乱码问题
原文链接:关于Navicat和MYSQL字符集不统一出现的中文乱码问题
最近遇到一串关于MYSQL中文乱码的问题,问题背景是这样的:
在此之前,服务器上安装好MySQL之后就立马重新配置了字符集为utf8,之后用Navicat进行数据导入,发现中文的字符导入之后全是乱码,然后查论坛很
快通过以下方式解决了:建立连接时编码选择UTF-8,把使用MYSQL字符集之前的勾勾去掉。

数据库的属性设置为:
OK,Navicat里的中文字符正常了。于是 ,开心的进行数据导入,一切感觉完美~
接下来我在命令行采用最简单的mysqldump方法进行备份,备份成功,因为都是测试数据,我顺手打开备份好的文件一看,又是乱码!之后命令行直接进到数据库查询,
果然查询结果也是乱码!我用命令行建了一个测试表,插入中文数据,查表,显示正确;Navicat查表,乱码。这是什么情况~明明两边都是UTF-8
编码方式。
内心一万只羊驼奔过...
OK 我们现在来一步步排查问题:
首先,打开/etc/my.cnf 文件查看是否字符集配置正确,果然,在[mysqld] 下错写成了default-character-set=utf8
正确的配置方式:
先备份一下my.cnf文件,然后 vim /etc/my.cnf 插入以下几行
[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8 #注意这行不要写成 default-character-set=utf8
[mysql]
no-auto-rehash
保存之后service mysqld restart 启动成功 ,进行之前的数据测试,乱码问题依然存在。能两边的字符集真的不一样呢?
查了一些资料才知道:只要涉及到文字的地方,就会存在字符集和编码方式。对于MySQL数据库系统而言,用户从MySQL client端敲入一条sql语句,通过TCP/IP传递给
MySQL server进程,到最终存入server端的文件,每个环节都涉及到字符存储。涉及到字符存储的地方,就涉及到字符集编码。
我们就用 show variables like'char%';和 showvariables like 'collation_%';来查看一下:
分别在MYSQL、Navicat中运行命令;
两边有些字符集和校对的系统变量是不同的。
至此,我找到了问题的关键。
最后我们去解决问题,我有两种方法:
①我们以MySQL配置为准。在Navicat 中运行以下命令:
setcharacter_set_client= utf8;
setcharacter_set_connection =utf8 ;
setcharacter_set_results=utf8 ;
再查看字符集,两边就一致了。进行测试,乱码问题解决。
②保证MySQL字符集配置正确的前提下,在navicat的连接属性中勾选使用MYSQL字符集。
最后才发现自己把自己坑了。
不管怎样,最后问题解决了,又可以愉快的工作了。
以下是我参考的一些文章:
http://www.douban.com/note/268110263/?type=like
http://www.linuxidc.com/Linux/2015-04/116550.htm
[转]关于Navicat和MYSQL字符集不统一出现的中文乱码问题的更多相关文章
- Tomcat+ssh+Mysql本地正常,远程服务器中文乱码。(转)
ssh2+mysql中文乱码解决方法(统一使用UTF-8编码) 中文乱码,首先要区分是页面乱码.action乱码,还是数据库乱码.大致的原理是java使用unicode编码– >window使用 ...
- Mysql 的字符编码机制、中文乱码问题及解决方案【转载】
本文转载自:http://hi.baidu.com/huabinyin/item/7f51e462df565c97c4d24929.感谢作者及相关博主. 相信很多朋友都会对字符编码敬而远 ...
- phpmyadmin设置编码和字符集gbk或utf8_导入中文乱码解决方法
一.phpmyadmin设置新建数据库的默认编码为utf8编码的方法 1:新建数据库 my_db 2:使用sql语句 set character_set_server=utf8; //设置默认新 ...
- mysql操作命令梳理(4)-中文乱码问题
在平时的mysql运维操作中,经常会碰到插入中文字段后出现乱码的情况,产生中文乱码的原因一般有:1)mysql的编码格式不对,是latin1编码.强烈推荐将mysql下的编码格式都改为utf8,因为它 ...
- Java Web工程连接MySQL数据库及Tomcat服务器页面中文乱码
Java Web工程连接MySQL数据库 一. 准备工作 1.下载连接MySQL数据库的JDBC (可以去官网下,也可以去百度云找) 2.将下载的jar文件复制到Tomcat的lib目录下 3.新建一 ...
- hibernate像MySQL数据库里面存值是中文乱码的解决合辑
解决办法一: 1.把数据库表每一行改成gb2312_chinese(使用PHPMyAdmin) 2.导入时候还是不行,因此查网上的资料说hibernate持久化层在传输过程中未设置编码格式,这样在 ...
- tomcat服务器配置字符集为utf-8-彻底解决中文乱码问题
<Connector port="8070" protocol="HTTP/1.1" connectionTimeout="20000" ...
- mysql利用sql脚本插入数据中文乱码
将其中的 /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;/*!40101 SET @OLD_CHARACTER_SE ...
- MySQL数据库插入中文乱码解决方法
在mysql数据库中,插入中文数据时,会出现乱码的现象. 我的测试方法: 首先用Navicat for MySql 插入一行数据,带有中文的. 再用mysql命令行来查看插入的数据,看是否出现乱码. ...
随机推荐
- 84、PullToRefresh使用详解
PullToRefresh使用详解(一)--构建下拉刷新的listView http://blog.csdn.net/harvic880925/article/details/17680305 Pul ...
- 【BZOJ1217】[HNOI2003]消防局的设立 树形DP
[BZOJ1217][HNOI2003]消防局的设立 Description 2020年,人类在火星上建立了一个庞大的基地群,总共有n个基地.起初为了节约材料,人类只修建了n-1条道路来连接这些基地, ...
- 【BZOJ4254】Aerial Tramway 树形DP
[BZOJ4254]Aerial Tramway 题意:给你一座山上n点的坐标,让你在山里建m条缆车,要求缆车两端的高度必须相等,且中间经过的点的高度都小于缆车的高度.并且不能存在一个点位于至少k条缆 ...
- angular 2+ innerHTML属性中内联样式丢失
通过属性绑定的innerHTML,把字符串里面的html解析 解析是没问题的,但一些内联样式会丢失掉 为了不丢掉样式,需要自定义一个管道来解决这个问题 html.pipe.ts import {Pip ...
- SaltStack远程执行-返回MySQL
上一篇:SaltStack远程执行-模块 参考官方文档:https://docs.saltstack.com/en/latest/ref/returners/all/salt.returners.my ...
- 报错分析---->jsp自定义标签:Unable to load tag handler class
Unable to load tag handler class 无法加载标签处理程序类 处理自定义标签的类中如下: 调用自定义标签的jsp中如下:
- 挂载xfs磁盘
# 磁盘初始化 [root@localhost ~]# fdisk /dev/sdb Welcome to fdisk (util-linux 2.23.2). Changes will remain ...
- 【opencv】ubuntu opencv imshow()报错
错误提示: ubuntu opencv imshow() 报错 windows.cpp报错 the function is not implemented If you are on Ubuntu o ...
- PAT 1145 Hashing - Average Search Time [hash][难]
1145 Hashing - Average Search Time (25 分) The task of this problem is simple: insert a sequence of d ...
- java中使用MD5对密码进行加密
import org.springframework.security.authentication.encoding.MessageDigestPasswordEncoder; import org ...