踩坑记录之csv数据导入MySQL

2020-10-03  本文已影响0人  老饕_Ljw

可能采坑的操作

  1. 将excel表格转换成csv 逗号分隔,然后notepad检查文件是否是utf8编码,保存。


    image.png
  2. 打开 phpMyAdmin , 选择要导入的表格,然后点击导入;


    导入设置
  3. 点击执行之后,可能会等很久很久很久。。。。取决与数据量的大小,如果等了很久还没导入成功或者导入失败,亦或者数据导入一半就中断。。。 那么可能要注意一下几点

进阶操作

将csv文件上传到服务器,然后MySQL本地导入
  1. 将整理好的 csv文件(逗号分隔),上传到 /tmp/ 目录下 ,因为mysql默认使用了 /tmp 作为临时读写目录。否则可能会报没有权限之类的错误。
  2. 使用这条语句show variables like '%secure%';查询mysql文件的导入和导出路径是否有默认的路径设置,或者是默认不允许导入导出
  3. 导入语句,其中 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';
  1. 如果出现报错: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 的导入和导出做限制
不对mysqld 的导入 导出做限制

写在最后

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

上一篇 下一篇

猜你喜欢

热点阅读