mysql乱码问题_mysql乱码问题

mysql乱码问题

出现乱码的原因:因为当前的CMD客户端窗口与数据库本身及库,表的编码格式不一致导致的。所以当出现乱码的时候,请排查:

* sql文件的编码格式

* 当前CMD客户端窗口的编码格式

* 数据库服务本身的编码格式

* 数据库的编码格式

* 表结构的编码格式

我一在次更新客户环境中出现了,mysql命令source文件后,出现乱码的情况。但是使用navicat执行sql确没有问题。

这是命令行中查看字符编码得到结果:

53e9241f0f2c7e350524cf2a989e62af.png

这是我使用navicat查看字符编码得到的结果:

351f3521ccc70035153abc5dfc892300.png

从上图中可以看到MYSQL有六处使用了字符集,分别为:

与服务器端相关:database、server、system(永远无法修改,就是utf-8);

database

为数据库服务器中某个库使用的字符集设定,如果建库时没有指明,将使用服务器安装时指定的字符集设置

server

为服务器安装时指定的默认字符集设定

system

为数据库系统使用的字符集设定

与客户端相关:connection、client、results :

client

为客户端使用的字符集

connection

为连接数据库的字符集调协类型,如果程序没有指明连接数据库使用的字符集类型则按照服务器端默认的字符集设置

results

为数据库给客户端返回时使用的字符集设定,如果没有指明,使用服务器默认的字符集。

通过上图和解释,可以得出,只要客户端与服务端的编码格式不一致就会导致筹码问题。只不过我这里只是这个问题,还有如表,数据库,sql文件的字符编码不一致,都会导致乱码。

解决方法

一、 在当前的CMD中修改字符集,只不过只能在当前会话生效:

mysql > set names utf8;

二、在连接数据库时就定义字符集编码:

~]# mysql -uxxx -pxxx -hxxxx --default-character-set=utf8

三、最有效的办法,就是在mysql服务器端修改mysql的配置文件,加入如下配置:

~]# cat /etc/my.cnf

[client]

default-character-set=utf8

[mysqld]

character-set-server=utf8

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值