可能采坑的操作
-
将excel表格转换成csv 逗号分隔,然后notepad检查文件是否是utf8编码,保存。
image.png
-
打开 phpMyAdmin , 选择要导入的表格,然后点击导入;
导入设置
-
点击执行之后,可能会等很久很久很久。。。。取决与数据量的大小,如果等了很久还没导入成功或者导入失败,亦或者数据导入一半就中断。。。 那么可能要注意一下几点
- phpMyAdmin 是用php写的,所以需要注意php超时的问题,数据量太大,超过了超时值 ,那么导入脚本会停止,导致数据导入中断。将php超时设为合适的大小即可。
- PHP超时参数设置了,csv文件格式也没有问题。。那可能是网络的问题。。或者其他我不知道的原因,导致数据传到一半就502(我今天就是)。。。sad
-
换一个导入姿势
令人难过的提示
进阶操作
-
因为之前一直用的上一种操作将数据导入MySQL,所以这次出了问题,就一直死磕。。。结果白白浪费了一堆时间,有时候一条路走不通的时候,还是需要想想其他办法
image.png
将csv文件上传到服务器,然后MySQL本地导入
- 将整理好的 csv文件(逗号分隔),上传到 /tmp/ 目录下 ,因为mysql默认使用了 /tmp 作为临时读写目录。否则可能会报没有权限之类的错误。
- 使用这条语句
show variables like '%secure%';
查询mysql文件的导入和导出路径是否有默认的路径设置,或者是默认不允许导入导出 - 导入语句,其中 csv 里面的列数要和表里面的一一对应;csv文件必须是文件的绝对路径;FIELDS TERMINATED BY: 指定分隔符;LINES TERMINATED BY: 指定换行符
#注意:Windows操作系统采用两个字符来进行换行,即CRLF;Unix/Linux/Mac OS X操作系统采用单个字符LF来进行换行;另外,MacIntosh操作系统(即早期的Mac操作系统)采用单个字符CR来进行换行。
CR:Carriage Return,对应ASCII中转义字符\r,表示回车
LF:Linefeed,对应ASCII中转义字符\n,表示换行
CRLF:Carriage Return & Linefeed,\r\n,表示回车并换行
#导入MySQL之前,可以先查看一下文件的换行符是哪种,否则可能发生导入错误。
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
,则使用这条语句show variables like '%secure%';
查询mysql文件的导入和导出路径是否有默认的路径设置,或者是默认不允许导入导出。
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%';
显示如下图即可正常导入数据。

写在最后
我是爱狗子的老饕,
转眼就研三,过去的这两年在各位大佬的照顾下,学到了不少东西,感谢。
一条路走不通的时候,要学会放过自己,换条路也许会更好,读研读博亦是如此,有些东西确实犯不着,最最最最最重要的当然是开心啦! 哈哈哈
网友评论