第一步 在服務器端創建跟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
完畢。