小编给大家分享一下解决mysql乱码的问题,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!

mysql是我们项目中非常常用的数据型数据库。但是因为我们需要在数据库保存中文字符,所以经常遇到数据库乱码情况。下面就来介绍一下如何彻底解决数据库中文乱码情况。

1、中文乱码

createtableuser(namevarchar(11));#创建user表insertintotableuser("carl");#添加数据select*fromuser;

插入中文问题:

insertintouservalue("哈哈");

解决方法:

查看表字符编码

mysql>showcreatetableuser\G;***************************1.row***************************Table:userCreateTable:CREATETABLE`user`(`name`varchar(11)DEFAULTNULL)ENGINE=InnoDBDEFAULTCHARSET=latin11rowinset(0.00sec)

我们可以看到表的默认字符集是latin1.

所以我们在创建表的时候就需要指定表的字符集:

createtableuser(namevarchar(11))defaultcharset=utf8;

这样在Linux里面可以访问并且可以插入与访问这个表了。

在客户端显示乱码问题:

在服务器端可以显示中文正常,但是在客户端可能会显示乱码。因为我们的服务器是UTF8

而且数据库的编码也存在问题:

解决方法:

查看数据库编码:

showvariableslike'%char%';

修改字符编码:

setcharacter_set_server=utf8;setcharacter_set_database=utf8;showvariableslike'%char%';

永久修改字符集:

修改mysql配置文件/etc/my.cnf:

[mysqld]character-set-server=utf8[client]default-character-set=utf8[mysql]default-character-set=utf8

请注意这几个参数配置的位置,不然可能会启动不起来mysql服务:

看完了这篇文章,相信你对解决mysql乱码的问题有了一定的了解,想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!