[转]关于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命令行来查看插入的数据,看是否出现乱码. ...
随机推荐
- M451例程讲解之GPIO.H
到了CORTEX-M4,几乎每一快都有很大的知识量,单单GPIO库文件这一项就有很长的章节要描述,加油吧 GPIO.h.是最基础的一个库文件,下面结合数据手册来一一进行讲解: 先把库文件粘上,方便一一 ...
- iOS 文件和数据管理 (可能会删除本地文件储存)
转自:http://www.apple.com.cn/developer/iphone/library/documentation/iPhone/Conceptual/iPhoneOSProgramm ...
- 【BZOJ3872】[Poi2014]Ant colony 树形DP+二分
[BZOJ3872][Poi2014]Ant colony Description 给定一棵有n个节点的树.在每个叶子节点,有g群蚂蚁要从外面进来,其中第i群有m[i]只蚂蚁.这些蚂蚁会相继进入树中, ...
- web测试点--摘录
转载地址:Web测试到底是在测什么 一.输入框 1.字符型输入框: (1)字符型输入框:英文全角.英文半角.数字.空或者空格.特殊字符“~!@#¥%……&*?[]{}”特别要注意单引号和&am ...
- CodeForces 732D Exams
D. Exams time limit per test 1 second memory limit per test 256 megabytes input standard input outpu ...
- PAT 1026 Table Tennis (30)
A table tennis club has N tables available to the public. The tables are numbered from 1 to N. For a ...
- APNS/苹果推送服务
Apple Push Notification Service Google Cloud Message/Google 云 消息 Firebase Cloud Messaging
- Oracle 数存储——物理结构
Oracle存储——逻辑结构 Oracle 数据库存储物理结构 物理存储结构是实际的数据存储单元,对应于操作系统文件. oracle数据库就是由驻留在服务器的磁盘上的这些操作系统文件组成的. 物理存储 ...
- matrix---简单dp,边界边界-_-
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5569 简单dp,恶心的边界处理,无语: if((i+j)%2==1) dp[i][j]=a[i-1][ ...
- Nginx 之 内存池
1.基本结构 先来学习一下nginx内存池的几个主要数据结构:[见:./src/core/ngx_palloc.h/.c] ngx_pool_data_t(内存池数据块结构) 1: typed ...