900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > MySQL 导入excel csv txt 文件到数据库

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

时间:2019-05-21 20:57:20

相关推荐

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 格式的数据文件

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。