在Ubuntu/Linux环境下使用MySQL:解决在Linux环境下MySQL中文乱码的问题

操作系统:Ubuntu 17.04 64位

数据库版本:MySQL 5.7


在下面这篇博文中,我主要介绍了如何在Ubuntu环境下安装MySQL

在Ubuntu/Linux环境下使用MySQL:安装MySQL

但是在整个安装的过程中,并不像Windows的安装向导那样,会引导我们设置数据库的字符集。MySQL会自说自话地采用默认的字符集完成安装。所以当我们使用MySQL的时候,会发现通过我们的程序(比如网页)写入数据库的中文会变成乱码,像下面这样:


所以我们在Linux环境下使用MySQL的时候,还需要手动修改数据库的默认字符集。

我使用的数据库版本是MySQL5.7,网络上有大量的关于如何修改数据库默认字符集的教程,但是有一个非常大的问题在于,这些教程所对应的MySQL版本都相对较低,教程中所提到的一些配置文件,在5.7版本中可能都发生了变化,所以本文专门针对5.7版本进行整理。

一、查看数据库字符集

使用命令行或者可视化工具连接MySQL服务后,输入以下命令:
show variables like 'chara%';
我们会看到类似以下图片的查询结果:
在Ubuntu/Linux环境下使用MySQL:解决在Linux环境下MySQL中文乱码的问题_第1张图片
很明显看到“character_set_server”这一项的值是“latin1”,也就是西文拉丁字符集,我们要修改的就是这个值。

二、修改配置文件

配置文件的路径为:
/etc/mysql/mysql.conf.d/mysqld.cnf
打开该文件,在[mysqld]选项中,加入以下配置:
character-set-server = utf8
如下图所示:
在Ubuntu/Linux环境下使用MySQL:解决在Linux环境下MySQL中文乱码的问题_第2张图片

保存该配置文件,并重启MySQL服务。

三、再次确认数据库服务字符集

再次使用命令行或者可视化工具连接MySQL服务后,输入以下命令:
show variables like 'chara%';
我们会看到如下图所示的查询结果:
在Ubuntu/Linux环境下使用MySQL:解决在Linux环境下MySQL中文乱码的问题_第3张图片
很容易看到,之前的西文拉丁字符集已经变成utf8了,到这里就大功告成了。

你可能感兴趣的:(Linux,数据库)