在尝试着将csv的数据导入mysql的时候,遇到了一个很麻烦的问题就是中文字符的编码问题。我是用Navicat导入的。
编码问题主要是编码格式不同导致的,所以要确保mysql的编码和csv文件的格式是一致的。
1. 首先查看一下数据库的格式
mysql> show variables like 'char%';
![](https://img.haomeiwen.com/i4717565/3ad7a798833f13d6.png)
发现很有多都不是utf8编码,证明自己的猜测是正确的。然后下一步就是更改mysql的编码了。
2. 更改mysql的编码
在/etc/mysql目录下面的mysql.cnf 文件下面 添加:
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
character-set-server=utf8
![](https://img.haomeiwen.com/i4717565/2bd142f4a4593404.png)
然后重启mysql:
service mysqld restart
查看的结果是,已经更改:
![](https://img.haomeiwen.com/i4717565/0a8cb3a4dbbcf58c.png)
3.然后导入数据还是出问题
查了很多资料,但是仍然找不到解决方案,最后是在stackoverflow上面找到了。(再一次安利,解决技术性问题的时候,google比百度靠谱太多,强烈建议先google一下)
在mysql上面输入
mysql > status
![](https://img.haomeiwen.com/i4717565/9311a6a21406951f.jpg)
发现有一个db的编码还是没有改,估计是这个数据库是我已经创建的。
到这个一步解决方案就基本上出来了:
方案一:创建一个新的数据库
方案二:更改这个数据库的编码
ALTER DATABASE `db_name` DEFAULT CHARACTER SET utf8
然后就可以了
我的天!
网友评论