MySql乱码问题汇总(补2018.01.09)

本文详细介绍了MySQL数据库中出现乱码的原因及解决方法。通过调整客户端、连接、服务器、数据库和数据表的编码格式,可以有效避免乱码现象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MySql乱码问题一直让人很头疼。下面是我自己的经验,只是做个总结加深记忆,写的不好,重在学习!
首先解释一下大家经常说MySql数据库,MySql其实是管理数据库的软件系统,也可以说是一个服务器。
MySql服务器上部署很多数据库,虽然解释的有些大白话,但是它更好的帮我理解了为什么!
MySql产生乱码的原因:
在我们操作数据库的客户端可以是dos也可以是一些sql-yong等,你操作数据库数据需要编码格式,所以有一个
客户端设置编码,然后你连接MySql数据库信息还需要以哪个字符集进行编码,设置连接编码,MySql服务器
端也会加载数据所以也需要编码,数据库操纵数据需要编码,表存储数据需要编码,查询结果需要编码这几个环节
一定了解,其中任何一处不匹配都有可能引起乱码。
可以在dos下查看当前MySql数据库服务器状态!
cmd打开dos—mysql -h(目标主机地址)-u 用户名 -p (密码)后边不要加冒号因为mysql命令是dosmingl不是MySQL服务器命令
进入指定用户MySql服务器后,输入status查看数据库服务器状态可以看到:
Server characterset:    gb2312(服务器编码格式)
Db     characterset:    gb2312(数据库编码格式,这里的格式并不是你创建数据库的编码格式,所以你创建的时候必须指定编码格式)


Client characterset:    gb2312(客户端编码格式)
Conn.  characterset:    gb2312 (连接数据信息的编码格式)
设置上边格式可以通过软件方式:打开MySql的bin目录执行MySQLInstanceConfig.exe文件设置编码格式,设置完以后上边的编码都会变成你所设置
的编码。这之上是配置数据库环境的编码格式。例如:服务器、客户端、连接。
下面是配置数据库和数据表的编码格式
查看数据库的编码格式方法:
show create database 数据库名;
查看数据表的编码格式方法:
show create table 表名;
如果上述编码格式与你不符需要修改
数据库
alter database 数据库名字 character set 字符集;
数据表
alter table 表名 character set 表名;
创建数据库时指定字符集是一个很好的习惯,否则后期麻烦。如果你指定后,后期创建数据库默认第一次。


查看更全的编码字符集
show  variables(后边的s千万别忘) like "char%"; #大意为查询所有含有char字符集变量
显示内容大概:
| character_set_client     | gb2312
           |
| character_set_connection | gb2312
           |
| character_set_database   | gb2312
           |
| character_set_filesystem | binary
           |
| character_set_results    | gb2312
           |
| character_set_server     | gb2312
           |
| character_set_system     | utf8
前提你必须选择一个数据库,如果你不选择数据库直接执行show  variables(后边的s千万别忘) like "char%";你所看到的 character_set_database   | gb2312
个编码是不正确的。必须选择数据库后应用。为什么我也不知道,上网搜了半天也没找到结果。


如果你在当前dos下执行set character_set_database=utf8;只能针对当前dos窗口的数据库,如果你退出
dos,此设置失效。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值