文章目录

  • 单个文件导入
  • 1.创建数据库和数据表
  • 2.使用cmd
  • 各种情况说明
  • 如果报错
  • 方案一
  • 方案二
  • 方案三
  • mysql重启
  • 命令重启:
  • 图形页面重启


本文使用MySQL版本为5.7.38

当txt文件中的数据量太多时,不再适合用sql语句插入,这里介绍讲本地txt文件导入到mysql中

单个文件导入

如图所示为我的的文件

windows导入数据mysql_mysql

1.创建数据库和数据表

创建数据库 create database 库名; 我的数据库创建create database temperature; 创建数据表(字段:日期,最大值,最小值,平均值)

CREATE TABLE `temperature` (
  `Tem_Date` varchar(10) NOT NULL,
  `Tem_Max` double DEFAULT NULL,
  `Tem_Min` double DEFAULT NULL,
  `Tem_Avg` double DEFAULT NULL,
  PRIMARY KEY (`Tem_Date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

2.使用cmd

windows按win+R。输入cmd,点击确定

windows导入数据mysql_windows导入数据mysql_02


然后进入mysql

windows导入数据mysql_sql_03

mysql -uroot -p
use temperature; //要上传的数据库
load data infile 'E:/temperature_data.txt' into table temperature fields terminated by'\t';

windows导入数据mysql_重启_04

各种情况说明

注意:路径必须使用“/”反斜杠!
注意:路径必须使用“/”反斜杠!
注意:路径必须使用“/”反斜杠!

1、插入以“tab”键分隔的数据

LOAD DATA LOCAL INFILE 'D:/MySQL/files.txt' INTO TABLE 表名;

2、插入以“\r\n”分隔的数据

LOAD DATA LOCAL INFILE 'D:/MySQL/files.txt' INTO TABLE 表名
LINES TERMINATED BY '\r\n';

3、插入以自定义符号分隔的数据

LOAD DATA LOCAL INFILE 'D:/MySQL/files.txt' INTO TABLE 表名
FIELDS TERMINATED BY '*****(自定义字符串)';

如下图数据的导入语句

windows导入数据mysql_数据库_05

load data infile 'E:/xs/xs1.txt' into table user fields terminated by'|' lines terminated by'\n';

如果报错

报错
Error: The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

报错原因:因为在安装MySQL的时候限制了导入与导出的目录权限。只允许在规定的目录下才能导入。
可以通过以下命令查看secure-file-priv当前的值是什么

在myql命令行状态下输入SHOW VARIABLES LIKE "secure_file_priv";

windows导入数据mysql_windows导入数据mysql_06


可以看到,本地value的值为NULL。NULL代表什么意思呢?

(1)NULL,表示禁止。

(2)如果value值有文件夹目录,则表示只允许该目录下文件(PS:测试子目录也不行)。

(3)如果为空,则表示不限制目录。或者

在myqsl的安装目录中找打my.ini文件。打开查看里边secure-file-priv变量的值,若没有值则说明value值为null。

windows导入数据mysql_数据库_07

方案一

把要导入文件放入secure-file-priv目前的value值对应路径即可。

方案二

把secure-file-priv的value值修改为准备导入文件的放置路径。

方案三

去掉导入的目录限制。可修改mysql配置文件(Windows下为my.ini, Linux下的my.cnf),在[mysqld]下面,查看是否有:

secure_file_priv =

如上这样一行内容,如果没有,则手动添加。如果存在如下行:

secure_file_priv = /home

这样一行内容,表示限制为/home文件夹。而如下行:

secure_file_priv =

这样一行内容,表示不限制目录,等号一定要有,否则mysql无法启动。

windows导入数据mysql_数据库_08


所以我将我要上传的文件放到E盘的根目录下修改完配置文件后,重启mysql生效。

重启后再查看该值

windows导入数据mysql_重启_09

mysql重启

命令重启:

关闭:service mysqld stop
启动:service mysqld start

图形页面重启

依次点击

windows导入数据mysql_重启_10