之前在使用Mysql 5.1 版本的时候,是通过在 /etc/my.cnf
增加如下配置来设置字符集的:
但是今天在 5.7 版本上使用同样的方式时,导致 mysql 无法启动,日志文件 /var/log/mysqld.log
中一直报错:
unknown variable 'default-character-set=utf8'
问题就在 mysqld
中的 default-character-set=utf8 这个配置,它现在是个NG的配置,我们要做的就是将其删除,只要保留 character_set_server=utf8
即可。
另外,我们也通过命令行来调整。
不过,命令行的调整只是临时的。当mysql重启之后就失效了。
步骤如下:
- 使用 root 用户 登陆 mysql
> mysql -uroot -p
- 显示所有 ‘character’ 相关变量
> show variables like 'character%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
- 将所需要的变量修改为
utf8
> set character_set_database=utf8;
Query OK, 0 rows affected, 1 warning (0.00 sec)
参考文档