MySQL 导入excel、csv、txt 文件到数据库

MySQL学习—快速导入数据

复习mysql 的建库、建表, 考虑后期将项目的数据逐渐迁入到服务器数据库,因此尝试着将数据传入到本地mysql数据库,期间碰到一坑;以下记录本次所碰到的坑。

此过程中需修改的配置文件my.in.

  • 导入文件的路径问题
  • 导入数据某些字段中存在空值报错问题

注意: mysql 需要很好的掌握my.in. 文件的配置,经常会用到

1. 导入数据的步骤

(1) 建表

按照正常的建表操作进行建表, CREATE TABLE 表名()【此处不做过多的阐述, 详细知识点需复习】,例子:

CREATE TABLE tmll_taobao(
`年月` CHAR(20),
`淘宝月销额` INT DEFAULT NULL,
tao_goods INT,
`所有帖子数` INT DEFAULT NULL,
`所有转发数` INT,
`所有评论数` INT,
`转发1及以上帖子数` INT,
`重点品类` INT
);

(2)导入数据

导入数据采用 load data infiel 方式 ,因为此种方式写入速度快,易操作

参数说明:

into outfile ‘导出的目录和文件名’
指定导出的目录和文件名

fields terminated by ‘字段间分隔符’
定义字段间的分隔符

optionally enclosed by ‘字段包围符’
定义包围字段的字符(数值型字段无效)

lines terminated by ‘行间分隔符’
定义每行的分隔符

导入数据例子:

LOAD DATA INFILE 'C:/Users/lvdian/Desktop/tmall1.csv' INTO TABLE  tmll_taobao -- 路径名用  / 斜杆【与windows不一样】
FIELDS TERMINATED BY ','  --分割符
OPTIONALLY ENCLOSED BY '"' --如果字段里有",需要加上
LINES TERMINATED BY '\r\n'-- 换行符
IGNORE 1 LINES; -- 忽略第一行的字段名

此处遇到问题了,报错 显示:

ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

查看服务器的secure_file_priv设置的路径:

SHOW GLOBAL VARIABLES LIKE '%secure_file_priv%';

原因~~是MYSQL 5.7 版本对于 数据安全考虑,查看官方文档,secure_file_priv参数用于限制LOAD DATA, SELECT …OUTFILE, LOAD_FILE()传到哪个指定目录。

  • secure_file_priv 为 NULL 时,表示限制mysqld不允许导入或导出。
  • secure_file_priv 为 /tmp 时,表示限制mysqld只能在/tmp目录中执行导入导出,其他目录不能执行。
  • secure_file_priv 没有值时,表示不限制mysqld在任意目录的导入导出。

填坑方法:修改my.in. 配置文件:

(1)找到配置文件my.in.

修改为 secure_file_priv=

(2)重启mysql服务

重启服务后即可正常使用。

此过程中遇到的第2个问题是当excel中存在缺失值时,也会终止数据的导入:

解决办法:

修改 my.ini. 配置:参考博文

my.ini中查找sql-mode,
默认为sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION",
将其修改为sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION",重启mysql后即可

重启 服务器后即上传成功,速度超块。

说明:1. 可以上传txt、csv 格式的数据文件

  1. 尽量不要使用sql_yog、native 等工具上传数据,超慢。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值