【Linux 下 MySQL5.7 中文编码设置】

前言

        原本要使用 Sqoop 把我 MySQL 的数据导入到 HBase 中,习惯了使用 windows 下的 MySQL 8.0 版本,但是用 Sqoop 从windows 传到 linux 下有点复杂,就索性用我自己之前没用过的 linux 下的 MySQL 5.7,结果果然一堆问题:中文数据插入失败,修改配置文件导致 mysql 启动失败...

解决办法

1、修改配置文件 my.cnf

我的配置文件在 /etc/my.cnf (我的安装路径不是那,它应该是自动把配置文件放到那里的)。

#/etc/my.cnf
 
[client]
default-character-set=utf8
 
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
#default-character-set=utf8
character-set-server=utf8
init_connect='SET NAMES utf8'
 
[mysql]
no-auto-rehash
default-character-set=utf8
 
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

        可以直接复制,基本上没啥问题,不放心的可以核对一下 datadir、socket、log-file 和 log-error 的路径和原 my.cnf 中的路径是否一致。

        不要随便添加内容,否则一不小心配置失败就进不去 MySQL 了。

2、重启MySQL服务

systemctl restart mysqld.service

如果你上面的配置文件中有想当然或者自由发挥的内容,那么很容易在这里报错:Job for mysqld.service failed because the control process exited with error code. See systemctl status mysqld.service and journalctl -xe for details.

查看编码信息

show  variables like 'character%';

修改成功的话应该是这样的: 

【Linux 下 MySQL5.7 中文编码设置】_第1张图片

3、重新创建数据库 

即使你完成了上一步操作,这时你向表中插入中文数据依然可能会失败,因为你的数据库编码仍然是 latin1 (默认的)。

所以一定要删除原数据库,重新创建一遍!!!

参考

参考文章:http://t.csdnimg.cn/AVUqw

你可能感兴趣的:(数据库,linux,运维,服务器)