将.csv表格存入mysql数据库中_将Excel表格或者CSV文件导入到Mysql中

本文详细介绍了如何将CSV文件导入到Linux上的MySQL数据库中,包括Excel转CSV、设置UTF8编码、解决Linux中文乱码、修改MySQL字符集、建立数据库和表,以及导入数据时的注意事项,特别提到了XShell编码设置对显示的影响。
摘要由CSDN通过智能技术生成

最近老师让我把小范同学的数据导入到OpenStack平台虚拟机的Mysql中,他给我的数据格式是Excel和CSV。因为Excel文件可以导出成CSV格式的文件,所以归根结底还是如何将CSV文件导入到Mysql中。在导入的过程中遇到了很多问题,而且发现网上的文档都不怎么靠谱,弄了好久最后算是导入成功。其中最头痛的问题就是编码问题,由于我的linux是英文版的,所以中文数据在上面显示乱码,需要安装中文编码库。(前几天弄的时候犯了个低级错误,后面会讲到)具体步骤如下:

一、将Excel转为CSV

如果是Excel文件,需要在Excel中,通过右上角菜单栏:文件->另存为->选择.CSV文件。

这里需要注意,Windows下Excel默认编码是ANSI,而我需要的是utf8]编码的文件,所以需要在另存为csv的时候将编码改成utf8.

如何改呢?

方法一:在另存为的界面上有个“工具”选项,点开后选择“Web选项”,然后选择“编码”选项卡进行设置。

方法二:使用文本编辑神器NotePad++打开csv文件,然后选择 格式—>转为utf8无BOM编码格式

神器下载地址:点我下载神器

不知道什么是BOM?点我告诉你

二、下载中文编码库

如果你的ubunt是英文版,而且显示中文乱码的话,那么就要下载中文编码库。

sudo apt-get update //ubuntu系统更新软件包列表

sudo apt-get install -y language-pack-zh-hans

sudo apt-get install -y language-pack-zh-hant

下载完成后,安装到本机:

cd /usr/share/locales

sudo ./install-language-pack zh_CN //开始安装zh_CN中文字符集

三、更改Mysql编码

我们要把utf8编码格式的文件导入到mysql中,因此需要设置mysql字符集为utf8.

进入mysql,查看mysql当前字符集:

show variables like 'char%';

0818b9ca8b590ca3270a3433284dd417.png

必须确保以下五项均为utf8.

character_set_client character_set_connection character_set_database character_set_results character_set_server

如果其中有一项不是,需要修改/etc/mysql/my.cnf文件。

首先停止mysql,然后打开my.cnf文件。

sudo /etc/init.d/mysql stop

sudo vim /etc/mysql/my.cnf

在[mysqld]标签下添加character_set_server=utf8和init_connect=’SET NAMES utf8′

然后保存退出,重启mysql,如果没有变化可以重启机器。

四、建立数据库及表

进入mysql,建立数据库及对应的表。

create database 数据库名;

根据你的csv文件建立表格,表中的字段需要与csv文件中的字段一一对应。例如:

create table sdata (CUSTOMERID varchar(6),SEX varchar(1),NAME varchar(20),SUMFARE double(8,3),IDCARDNO varchar(20));

其中

sdata

为表名,这个表名需要与你的

csv文件名一致

,否则导入的时候会出错。

五、导入csv文件。

mysql -u用户名 -p密码 数据库名 --local-infile=1 -e "load data local infile '/home/hrd/sdata.csv' into table sdata

fields terminated by ',' lines terminated by '\r\n';"

特变注意,u用户名之间是没有空格的,p与密码之间也没有空格。sdata是表名,与csv文件/home/hrd/sdata.csv名称一致。数据库就是sdata表所在的数据库。 fields terminated by ‘,’表示数据之间用“,”隔开,这是csv文件的特性。lines terminated by ‘\r\n’表示每行数据以回车结束。 至此,文件导入成功。

六、中途的错误

最开始弄的时候,以上步骤均操作了,但是最后从数据库查询的中文依然是乱码,让我很纠结。因为我是使用XShell连接的远程虚拟机,我就想到会不会是XShell显示的问题,果然,将XShell的编码格式改为utf8以后就显示正常了。坑爹啊有木有。

七、遇到的问题

1、ubunt英文版显示中文乱码问题。

2、mysql查看及更改字符集

3、Excel文件转为CSV并设置编码格式

4、XShell编码格式

参考资料:

http://www.cnblogs.com/latifrons/archive/2012/09/07/2675141.html  //cvs导入mysql

http://blog.csdn.net/a342374071/article/details/8068524   //

http://soft.chinabyte.com/database/57/12623557.shtml    //数据库字符集查看

http://bbs.chinaunix.net/thread-4057535-1-1.html  //linux下查看及修改文件的字符集

http://www.cnblogs.com/alamps/archive/2012/11/27/2791312.html   //修改mysql字符集

http://8817074.blog.51cto.com/8807074/1678552     //linux下更改中文字符集

http://www.cr173.com/html/50452_1.html  // mysql设置编码为utf8

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值