如何解决mysql 5.6 中文 乱码问题

文 / @WordPress主题

MySQL作为一种常用的数据库,在使用过程中,中文乱码问题也是经常会遇到的。今天我们就来聊一聊如何解决MySQL5.6中文乱码问题。

首先,我们需要了解MySQL数据库乱码造成的原因。一般来说,乱码问题有以下几种情况:

1.创建数据库的时候没设置编码。

解决方法:在创建数据库的时候设置编码。例如:CREATEDATABASE`mydb`CHARACTERSETutf8COLLATEutf8_general_ci;

2.创建数据表的时候没设置数据库引擎编码。

解决方法:CREATETABLE`tb_album`(`id`bigint(20)NOTNULLAUTO_INCREMENT,`name`varchar(100)NOTNULLDEFAULT'',PRIMARYKEY(`id`))ENGINE=InnoDBDEFAULTCHARSET=utf8;

3.MySQL导入.sql文件的时候,由于编码问题,导致中文乱码。

解决方法:首先进入数据库mysql-uroot-p,然后输入密码进入,再输入命令查看编码:showvariableslike'char%';登录后,你会发现很多编码默认都是gbk,而character_set_server的编码默认是latin1,这个就是导入.sql文件的时候导致乱码的原因。其他的都可以在mysql控制台通过命令setxxx=utf8;修改编码(永久修改),唯独character_set_server不行,退出之后再登录还是latin1。

解决方法就是找到MySQL安装目录下的my.ini,设置default-character-set=utf8和character-set-server=utf8。如果你的MySQL是免安装版,那么是没有my.ini的,安装目录下只有my-default.ini文件,而且打开也没有character-set-server。先把my-default.ini拷贝一份,并重命名为my.ini,这样该目录下就有了my.ini和my-default.ini两个ini文件。然后打开my.ini并加上以下三行代码:

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

登录后复制具体位置后,重新启动MYSQL服务就发现character-set-server已经不再是latin1了。

如果你的MySQL是安装版本,那就找到my.ini,设置default-character-set=utf8和character-set-server=utf8,重启MySQL服务即可。

总之,解决MySQL5.6中文乱码问题并不难,只需要了解原因并按照正确的方法去处理即可。希望今天的分享能对大家有所帮助。

添加UTHEME为好友
扫码添加UTHEME微信为好友
· 分享WordPress相关技术文章,主题上新与优惠动态早知道。
· 微信端最大WordPress社群,限时免费入群。