mysql 命令行 乱码_mysql命令行以及mysql workbence查询结果中文乱码的解决方法

最近正在学习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('欧阳菲菲');

发现插入不了,总是报错,具体错误如下:7aa1b1826a3ac3fd1007ff2567bd09da.png

这种情况主要是由于默认编码设置错误引起的。

现在就查看一下mysql服务器的配置情况吧。

具体命令就是

show variables like 'character%';

查出的结果如下:

6cd1ec745330017f96e3daf8c0a568da.png

具体解决方法:

使用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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值