将excel的.csv文件转入服务器的mysql之中

4 篇文章 0 订阅
1 篇文章 0 订阅

第一步 在服务器端创建跟excel文件表结构一样的table

观察excel文件的表头,然后在服务器的database中new一个table;再在这个table中逐个添加excel的表头。
在这里插入图片描述

  • 这里尤其需要注意数据的格式;如果excel中一列中的某一项为空值,那么这一列将不能使用int类型,否则会引起报错。
  • 另外,建议先在本地的mysql上进行试验;成功之后再在服务器上执行建表的.sql文件。

建表完成之后可以使用下列命令来查看表的结构。

mysql> desc ase
    -> ;
+-----------------------------+---------------+------+-----+---------+-------+
| Field                       | Type          | Null | Key | Default | Extra |
+-----------------------------+---------------+------+-----+---------+-------+
| Document Title              | varchar(500)  | NO   |     | NULL    |       |
| Authors                     | varchar(500)  | YES  |     | NULL    |       |
| Author Affiliations         | text          | YES  |     | NULL    |       |
| Publication Title           | varchar(500)  | NO   |     | NULL    |       |
| Date Added To Xplore        | varchar(500)  | YES  |     | NULL    |       |
| Publication Year            | int(11)       | NO   |     | NULL    |       |
| Volume                      | varchar(50)   | YES  |     | NULL    |       |
| Issue                       | varchar(500)  | YES  |     | NULL    |       |
| Start Page                  | varchar(50)   | NO   |     | NULL    |       |
| End Page                    | varchar(50)   | NO   |     | NULL    |       |
| Abstract                    | mediumtext    | YES  |     | NULL    |       |
| ISSN                        | varchar(100)  | YES  |     | NULL    |       |
| ISBNs                       | varchar(100)  | YES  |     | NULL    |       |
| DOI                         | varchar(100)  | YES  |     | NULL    |       |
| Funding Information         | varchar(510)  | YES  |     | NULL    |       |
| PDF Link                    | varchar(200)  | YES  |     | NULL    |       |
| Author Keywords             | varchar(500)  | YES  |     | NULL    |       |
| IEEE Terms                  | varchar(500)  | YES  |     | NULL    |       |
| INSPEC Controlled Terms     | varchar(1000) | YES  |     | NULL    |       |
| INSPEC Non-Controlled Terms | varchar(3000) | YES  |     | NULL    |       |
| Mesh_Terms                  | varchar(500)  | YES  |     | NULL    |       |
| Article Citation Count      | varchar(50)   | YES  |     | NULL    |       |
| Reference Count             | varchar(50)   | YES  |     | NULL    |       |
| License                     | varchar(200)  | YES  |     | NULL    |       |
| Online Date                 | varchar(50)   | YES  |     | NULL    |       |
| Issue Date                  | varchar(50)   | YES  |     | NULL    |       |
| Meeting Date                | varchar(20)   | YES  |     | NULL    |       |
| Publisher                   | varchar(200)  | YES  |     | NULL    |       |
| Document Identifier         | varchar(200)  | YES  |     | NULL    |       |
+-----------------------------+---------------+------+-----+---------+-------+
29 rows in set (0.00 sec)

第二步 将excel文件处理完成后发送到服务器端

得到的excel文件大多数都包含表头;我们应当现将第一行表头删除,因为到时候数据导入的时候是从第一行开始进行导入;如果不删掉第一行表头,那么可能会引起报错;或者运气好不报错,然后他把表头当作数据读到你的表里面去。一定要记得删excel的表头。

提前在服务器端创建一个存放excel文件的文件夹。这里我建议在/tmp文件夹下mkdir,因为/tmp文件夹是mysql读取文件的默认文件夹,不会引起一些花里胡哨的权限问题。(不建议在存储在/root文件夹下,很容易引起权限问题)。
如果出现下列报错就是因为上述权限原因:
ERROR 13 (HY000): Can't get stat of '/root/*****' (Errcode: 13 - Permission denied)

接下来通过scp上传文件到服务器

scp (file) root@(你服务器的url):/(你想上传到的文件夹)

mysql默认会有文件保护机制,如果不特意设置,将会无法读取文件并报错ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

需要在my.cnf文件中加上这么一句:secure_file_priv=''。这一句就代表着mysql将会允许任何文件的导入。修改完之后,重启mysql服务。

如果找不到my.cnf配置文件,建议参考以下博客:https://blog.csdn.net/qq_25287393/article/details/81699693

三 将服务器端的.csv文件导入mysql

mysql -u root -p
*输入你的密码
use test *这里是选择database
load data infile '你想要导入的文件的绝对url'  into table 你想要导入的表的名字 fields terminated by ',' optionally enclosed by '"' escaped by '"' lines terminated by '\n';
Query OK, 602 rows affected (0.20 sec)
Records: 602  Deleted: 0  Skipped: 0  Warnings: 0

完毕。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值