Mysql的中文变‘?’的解决办法

       当我们给我们创建的表无论是用Mysql语句插入,还是通过mysql的管理工具手动录入,都无法解决中文变?的问题。

        无论是在数据库中修改表还是库的相应字符格式都无法解决的时候。此时我们在安装新版的mysql中,也没有my.ini文件。这时我们就陷入一个僵局-----崩溃了,想砸了电脑。别慌!我花费了2个小时百度,尝试了很多办法,终于解决了。

1.现进入C:\Program Files\MySQL\MySQL Server 5.7\bin中,然后进入cmd控制台。

或者先进入cmd控制台,然后在进入C:\Program Files\MySQL\MySQL Server 5.7\bin文件目录。

 2.登录数据库

 mysql>mysql -hlocalhost -uroot -proot     

此时后续有两种方式。

数据库中字符出现乱码无非列的字符编码出现问题。

方式一:通过查询表各列编码,看是否列的编码出现的问题。

3.切换数据库  use 【数据库名称】

 

4.查询表的字符编码  show create table 【表名】

 此时会发现Name 的编码未Latinl.这是我们中文变成?的原由之一。我们现在改变这个。

alter table `表名`change `列名` `列名`varchar(32) character set utf8 not null;

5.设置完成后,再去尝试操作数据库,会发现问题解决啦。

 方式二.

 3.输入show variables like '%char%'语句,查询数据库的字符编码情况。

       此时我们会发现character_set_server、database的编码并非未utf8 ,这是我们的原因所在,此时我们进行修改吧。

分别输入下面2句语句。

 set @@character_set_server='utf8';

 

set @@character_set_database='utf8';

 4.设置完成后,我们再次输入show variables like '%char%'语句,查询数据库的字符编码情况。你会发现数据库编码设置成我们想要的了。

 5.关闭cmd,重启mysql服务,会发现问题解决啦。

 

 总结:面对编码问题,其实无需太担心,耐心的去解决,收获还是非常大的。也希望各位好友能在IT路上继续加油。

Guess you like

Origin blog.csdn.net/weixin_52140190/article/details/121516485