Mysql 导入excel文件 中文乱码 | 您所在的位置:网站首页 › 怎么把表导入mysql黑框里 › Mysql 导入excel文件 中文乱码 |
Mysql配置好之后,需要数据来进行学习,插入太慢,正好有现成的excel文件可以导入。 使用的数据库工具是DBeaver,找了半天也没找到怎么导入excel,比oracle的plsql工具差太远了。 然后把excel另存为csv文件,编码是utf8格式的: -bash-4.1$ file import.csv import.csv: UTF-8 Unicode text从Mysql命令行导入: mysql> load data local infile '/var/lib/mysql/import.csv' into table yaohq.nanchang_union_butie fields terminated by ','; Query OK, 0 rows affected, 603 warnings (0.03 sec) Records: 201 Deleted: 0 Skipped: 201 Warnings: 603好多警告,查看表数据发现中文全是乱码。。。 然后解决乱码问题: 1. 把表的字符集设置为utf8: ALTER TABLE yaohq.nanchang_union_butie DEFAULT CHARSET=utf8;-^……^- 2. 把数据库的字符集设置为utf8: [mysqld] character-set-server=utf8 collation-server=utf8_general_ci [client] default-character-set=utf8然后重启数据库,重新导入csv文件,发现还是乱码。 看了一下乱码的列属性,发现编码还是开始默认的latin1。 问题可能就在这里了,由于列比较多,没有用modify去修改每个列的字符集,直接删除表重建,建表的时候在最后加上default charset=utf8就OK了,然后查看每个列的字符集,也都变成了utf8。 继续导入csv文件,没有报错: mysql> load data local infile '/var/lib/mysql/import.csv' into table yaohq.nanchang_union_butie fields terminated by ','; Query OK, 201 rows affected (0.05 sec) Records: 201 Deleted: 0 Skipped: 0 Warnings: 0查询数据,中文可以正常显示了。 如果导入的文件是gbk格式的,表的编码应该也是gbk的。 如果表的编码不可更改,那就修改导入文件的编码吧。 |
CopyRight 2018-2019 实验室设备网 版权所有 |