第一步 在服务器端创建跟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
完毕。