我是用的xshell连接的云服务器,今天想在服务器上面部署一个项目,但是当我在数据库里面安装mysql之后,通过select的sql语句查询数据,在表里面的中文出现乱码,给我直接干懵了,这个怎么办?而且还有更深的问题出现,改了数据库的编码也还是显示乱码,我相信有很多老铁也遇到相同的问题,不要急,我们来进行解决,跟着这个博客解决乱码问题,解决不了你来打我;
一、默认大家已经连接上mysql了,这里我们先通过命令:
show variables like '%char%'; 查询到我们数据库相关的编码设置;
二、通过查看编码设置我们得到,这个编码并不是utf8,所以这个是出现乱码的根本原因,只要不是utf8,都有可能乱码;
三、这个时候我们就来解决乱码,首先退出mysql界面,让我们找到/etc/my.cnf文件;
四、编辑/etc/my.cnf文件:
-
vim /etc/my.cnf打开文件;
-
找到[mysqld]这一行,然后在下面添加一行代码 character_set_server= utf8;
五、直接运行mysql的话还是一样会乱码,是因为我们需要重启一下,才会生效;重启命令:/etc/init.d/mysqld restart;
六、再次进入mysql,我们可以通过命令: show variables like '%char%'查看编码,可以看到已经设置好了;
七、再次通过select查询看看效果,此时还是乱码!!!卧槽,更懵逼了;
大家不要慌,到这里,有些铁子的问题已经解决了,但是每个人的情况肯定都不一样,例如我,我也还是乱码;我肯定会带着大家解决的,我们接着往下看:
八、在我们的终端随便输入一些中文,如果是乱码的话,那就不是mysql的编码问题;大家就不要纠结在mysql了;那么是liunx系统的问题吗?摆脱,我可以花了钱买的云服务器,虽然阿里云可以白嫖一个月,那也不可能拿一台坏的给我对吧,所以我们也要排除人家的底层设置;那么问题只有一个了;
九、这个时候请打开你的xshell连接工具,这个是因为你的连接的编码使用的默认语言,默认语言不是UTF-8;
十、配置我们的SSH终端(以xshell为例)
打开“文件”—“属性” , 在“终端”(Terminal),将“编码”(Encoding)改为Unicode(UTF-8)即可。
完成这个配置后,我们再连接上,在终端随便输入中文,都能显示,就可以去数据库查询了;
想不到吧,问题出现在我们身上,也是大家很容易忽略的一个问题,真是拨开云雾见青天啊;