MySQL的编码问题

在尝试着将csv的数据导入mysql的时候,遇到了一个很麻烦的问题就是中文字符的编码问题。我是用Navicat导入的。

编码问题主要是编码格式不同导致的,所以要确保mysql的编码和csv文件的格式是一致的。

1. 首先查看一下数据库的格式
mysql> show variables like 'char%';
2017-05-25 22-28-24屏幕截图.png

发现很有多都不是utf8编码,证明自己的猜测是正确的。然后下一步就是更改mysql的编码了。

2. 更改mysql的编码

在/etc/mysql目录下面的mysql.cnf 文件下面 添加:

[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
character-set-server=utf8
2017-05-25 22-47-54屏幕截图.png

然后重启mysql:

service mysqld restart

查看的结果是,已经更改:


2017-05-25 22-49-23屏幕截图.png
3.然后导入数据还是出问题

查了很多资料,但是仍然找不到解决方案,最后是在stackoverflow上面找到了。(再一次安利,解决技术性问题的时候,google比百度靠谱太多,强烈建议先google一下)

在mysql上面输入

mysql > status
Inked2017-05-25 23-05-41屏幕截图_LI.jpg

发现有一个db的编码还是没有改,估计是这个数据库是我已经创建的。

到这个一步解决方案就基本上出来了:
方案一:创建一个新的数据库
方案二:更改这个数据库的编码

ALTER DATABASE `db_name` DEFAULT CHARACTER SET utf8

然后就可以了

我的天!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容