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的。
如果表的编码不可更改,那就修改导入文件的编码吧。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值