最近正在学习mysql,安装环境是windows server 2003 32位操作系统+mysql 5.1.47
同时也安装了mysql命令行以及mysql workbench
这里是test数据库
create  table fortest(empno int auto_increment,empname nvarchar(20) not null,constraint pk_fortest primary key(empno))default charset=utf8;
然后插入了一条数据
set names character utf8;
insert into fortest(empno)values('欧阳菲菲');
发现插入不了,总是报错,具体错误如下:
这种情况主要是由于默认编码设置错误引起的。
现在就查看一下mysql服务器的配置情况吧。
具体命令就是
show variables like 'character%';
查出的结果如下:

具体解决方法:

使用MySQL命令行可以实现许多我们需要的功能,不过在使用MySQL命令行的时候,有一个问题是在MySQL命令行插入中文数据或者查询中文数据时出现乱码,或者显示不对。

在MySQL命令行输入:show variables like ‘character_set_%’;

查看当前配置的编码;

在MySQL命令行输入 :set names utf8;

则等同于

set character_set_client=utf8;

set character_set_results=utf8;

set character_set_connection=utf8;

这三条命令

在命令行插入数据之前

执行命令set names gbk;或者set names gb2312;

再插入

查询数据之前

执行命令set names gbk;或者set names gb2312;

完了之后再set names utf8;

这样就能正常插入和查询中文并且保持数据库编码为utf8

对于mysql workbench中的查询出现中文乱码主要是由于mysql服务器的配置中默认设置的编码不是utf8引起的,具体在windows操作系统下,要修改mysql安装目录下的my.ini
(linux下则是安装目录下的my.cnf文件)
主要修改的部分如下:
[client]

port=3306

[mysql]

default-character-set=utf8

[mysqld]

# The TCP/IP Port the MySQL Server will listen on
port=3306

#Path to installation directory. All paths are usually resolved relative to this.
basedir="D:/Program Files/MySQL/MySQL Server 5.1/"

#Path to the database root
datadir="D:/MySQL/MySQL Server 5.1/Data/"

# The default character set that will be used when a new schema or table is
# created and no character set is defined
default-character-set=utf8

具体修改的部分就是红色粗体字的文字部分。

转载自:http://blog.sina.com.cn/s/blog_8a3a624901018j83.html

mysql命令行以及mysql workbence查询结果中文乱码的解决方法的更多相关文章

  1. Mysql命令行中文乱码的解决方法

    环境:Windows 8 64位,Mysql  5.0.96 for Win64 (x86) 数据库本身安装时默认已经是使用utf8编码的了,但在命令行中执行查询时,查询到的中文依然乱码,解决方法如下 ...

  2. 通过mysql命令行理解mysql

    引言:工具不可谓给我们的生活带来了便利,但有些时候我们却忘记了事物本身的意义.在大多数人都在追捧甚至是盲从各种各样的工具有多先进的时候,你是否有反思过:你目前是否有使用它的资格. 假设你学会了使用一款 ...

  3. 30. CentOS终端命令行显示中文乱码的解决方法

    安装CentOS的时候选择了中文,结果在终端不能显示中文,都是乱码,解决方法:修改/etc/sysconfig/i18n,内容为   代码如下: LANG="zh_CN.GB18030&qu ...

  4. MySQL命令窗口出现中文乱码的解决方法

    查询表语句的时候,出现了中文乱码,但是用Navicat for MySQL查看的时候却是正常的,字符集都是设置的utf-8,如下图所示:     其实上大学学习java的时候也遇到了中文乱码但是却没有 ...

  5. CMD下查询Mysql中文乱码的解决方法

    我的MySQL是默认utf8编码的,所建数据库也是设置utf8编码,使用程序可以新增中文数据,在cmd中使用SQL语句新增数据则报类似Incorrect string value: '\xB2\xE2 ...

  6. mysql中文乱码的解决方法

    MySQL的字符集支持(Character Set Support)有两个方面: 字符集(Character set)和排序方式(Collation).对于字符集的支持细化到四个层次: 服务器(ser ...

  7. mysql 中文乱码的解决方法

    添加或修改my.ini 配置文件,设置编码字符为utf8 ,默认为latin1,见红色字体 [mysql]# 设置mysql客户端默认字符集default-character-set=utf8 [my ...

  8. windows下命令行利器---Cmder(安装,中文乱码,配置右键菜单)

    很多人都是在win下开发的,这样就会出现,经常需要命令行操作,而win cmd命令和linux命令有很大差异,导致大家很难受,今天给大家介绍一个win下命令行的利器-Cmder 一.先看一下它的容颜 ...

  9. 使用PDO连接数据库 查询和插入乱码的解决方法

    问题:PDO连接数据库后,查询和插入中文到数据库,出现乱码,如图: 解决方法: 法1: try{ $opts_values = array(PDO::MYSQL_ATTR_INIT_COMMAND=& ...

随机推荐

  1. a=av###b=bv###c=cv map键值对 (a,av) (b,bv) (c,cv)

    import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; impo ...

  2. iOS - iOS 应用

    1.Xcode 项目属性 Product Name 软件名称.产品名称.项目名称 Organization Name 公司名称.组织名称 Organization Identifier 公司的唯一标识 ...

  3. iframe布局

    代码如下: <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF ...

  4. public protect private. 草稿。

    public protect private. 草稿. #include <iostream> #include <thread> #include <memory> ...

  5. IT关键词,发现与更新,点成线,线成面,面成体

    时序图 1.什么是时序图 2.如何看懂时序图 3.时序图的作用 4.如何绘制时序图 分布式 一个业务分拆多个子业务,部署在不同的服务器上. 分布式是指将不同的业务分布在不同的地方. 而集群指的是将几台 ...

  6. WPF界面布局——Canvas

    Canvas用于定义一个区域,称为画布,用于完全控制每个元素的精确位置.它是布局控件中最为简单的一种,直接将元素放在指定位置,使用Canvas时,必须指定一个子元素的位置(相对于Canvas),否则所 ...

  7. Linux下LVM

    http://www.cnblogs.com/xiaoluo501395377/archive/2013/05/22/3093405.html

  8. java内存划分

    运行时数据区域 Java虚拟机在执行Java的过程中会把管理的内存划分为若干个不同的数据区域.这些区域有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,而有的区域则依赖线程的启动 ...

  9. c语言实现的协程

    这几天突然对协程感兴趣,于是自己实现了一个,代码放在github上:https://github.com/adinosaur/Coro 协程是一种用户空间的非抢占式线程,主要用来解决等待大量的IO操作 ...

  10. Bible

    001 Love your neighbor as yourself.         要爱人如己.--<旧·利>19:18      002 Resentment kills a foo ...