Mysql 导入excel文件 中文乱码 您所在的位置:网站首页 怎么把表导入mysql黑框里 Mysql 导入excel文件 中文乱码

Mysql 导入excel文件 中文乱码

2024-06-17 06:06| 来源: 网络整理| 查看: 265

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 实验室设备网 版权所有