將excel的.csv文件轉入服務器的mysql之中

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

完畢。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章