操作系统:Ubuntu 17.04 64位
数据库版本:MySQL 5.7
在下面这篇文中,我主要介绍了如何在Ubuntu环境下安装mysql
在Ubuntu 17.04 64位/Linux环境下使用MySQL:安装MySQL(http://www.linuxdiyf.com/linux/32331.html)
但是在整个安装的过程中,并不像Windows的安装向导那样,会引导我们设置数据库的字符集。MySQL会自说自话地采用默认的字符集完成安装。所以当我们使用MySQL的时候,会发现通过我们的程序(比如网页)写入数据库的中文会变成乱码,像下面这样:

所以我们在Linux环境下使用MySQL的时候,还需要手动修改数据库的默认字符集。
我使用的数据库版本是MySQL5.7,网络上有大量的关于如何修改数据库默认字符集的教程,但是有一个非常大的问题在于,这些教程所对应的MySQL版本都相对较低,教程中所提到的一些配置文件,在5.7版本中可能都发生了变化,所以本文专门针对5.7版本进行整理。
一、查看数据库字符集
使用命令行或者可视化工具连接MySQL服务后,输入以下命令:
show variables like 'chara%';
我们会看到类似以下图片的查询结果:

很明显看到“character_set_server”这一项的值是“latin1”,也就是西文拉丁字符集,我们要修改的就是这个值。
二、修改配置文件
配置文件的路径为:
/etc/mysql/mysql.conf.d/mysqld.cnf
打开该文件,在[mysqld]选项中,加入以下配置:
character-set-server = utf8
如下图所示:

保存该配置文件,并重启MySQL服务。
三、再次确认数据库服务字符集
再次使用命令行或者可视化工具连接MySQL服务后,输入以下命令:
show variables like 'chara%';
我们会看到如下图所示的查询结果:

很容易看到,之前的西文拉丁字符集已经变成utf8了,到这里就大功告成了。