可能采坑的操作
- 将excel表格轉換成csv 逗号分隔,然後notepad檢查檔案是否是utf8編碼,儲存。
- 打開 phpMyAdmin , 選擇要導入的表格,然後點選導入; 導入設定
- 點選執行之後,可能會等很久很久很久。。。。取決于資料量的大小,如果等了很久還沒導入成功或者導入失敗,亦或者資料導入一半就中斷。。。那麼可能要注意以下幾點
- phpMyAdmin 是用php寫的,是以需要注意php逾時的問題,資料量太大,超過了逾時值 ,那麼導入腳本會停止,導緻資料導入中斷。将php逾時設為合适的大小即可。
- PHP逾時參數設定了,csv檔案格式也沒有問題。。那可能是網絡的問題。。或者其他我不知道的原因,導緻資料傳到一半就502(我今天就是)。。。sad
- 換一個導入姿勢 令人難過的提示
進階操作
- 因為之前一直用的上一種操作将資料導入MySQL,是以這次出了問題,就一直死磕。。。結果白白浪費了一堆時間,有時候一條路走不通的時候,還是需要想想其他辦法
将csv檔案上傳到伺服器,然後MySQL本地導入
- 将整理好的 csv檔案(逗号分隔),上傳到 /tmp/ 目錄下 ,因為mysql預設使用了 /tmp 作為臨時讀寫目錄。否則可能會報沒有權限之類的錯誤。
- 使用這條語句
查詢mysql檔案的導入和導出路徑是否有預設的路徑設定,或者是預設不允許導入導出show variables like '%secure%';
- 導入語句,其中 csv 裡面的列數要和表裡面的一一對應;csv檔案必須是檔案的絕對路徑;FIELDS TERMINATED BY: 指定分隔符;LINES TERMINATED BY: 指定換行符
LOAD DATA INFILE '/tmp/longan.posAnno.csv' INTO TABLE longan_GeneSearch_GenePosAnno FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n';
- 如果出現報錯:
,則使用這條語句The MySQL server is running with the –secure-file-priv option so it cannot execute this statement
查詢mysql檔案的導入和導出路徑是否有預設的路徑設定,或者是預設不允許導入導出。show variables like '%secure%';
secure-file-priv的值有三種情況:
secure_file_prive=null ––限制 mysql 不允許導入導出
secure_file_priv=/path/ – –限制 mysql 的導入導出隻能發生在預設的/path/目錄下
secure_file_priv=’’ – –不對 mysql 的導入和導出做限制
- 打開MySQL的配置檔案 my.cnf :
vim /etc/my.cnf
- 在該檔案中添加一行内容:
secure_file_priv =
- 重新開機 MySQL,然後檢視
顯示如下圖即可正常導入資料。show variables like '%secure%';
寫在最後
我是愛狗子的老饕,
轉眼就研三,過去的這兩年在各位大佬的照顧下,學到了不少東西,感謝。
一條路走不通的時候,要學會放過自己,換條路也許會更好,讀研讀博亦是如此,有些東西确實犯不着,最最最最最重要的當然是開心啦! 哈哈哈
PS:本文為師弟(海南道明寺)投稿,單身~ 具體不清楚他畢業去向,對他感興趣的可留言。