将本地txt文件上传至mysql

本文使用MySQL版本为5.7.38

当txt文件中的数据量太多时,不再适合用sql语句插入,这里介绍讲本地txt文件导入到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,点击确定
在这里插入图片描述
然后进入mysql
在这里插入图片描述

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

在这里插入图片描述

各种情况说明

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

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 '*****(自定义字符串)';

如下图数据的导入语句
在这里插入图片描述

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";
在这里插入图片描述
可以看到,本地value的值为NULL。NULL代表什么意思呢?
(1)NULL,表示禁止。
(2)如果value值有文件夹目录,则表示只允许该目录下文件(PS:测试子目录也不行)。
(3)如果为空,则表示不限制目录。

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

方案一

把要导入文件放入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无法启动。
在这里插入图片描述
所以我将我要上传的文件放到E盘的根目录下

修改完配置文件后,重启mysql生效。
重启后再查看该值
在这里插入图片描述

mysql重启

命令重启:

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

图形页面重启

依次点击
在这里插入图片描述

参考:(侵删)
https://blog.csdn.net/z_hang2358568/article/details/118542915
https://blog.csdn.net/weixin_42819452/article/details/110228102
https://www.cnblogs.com/Braveliu/p/10728162.html

  • 2
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
数据库? 首先,你需要创建一个 Django 项目和一个模型类来映射 MySQL 数据库中的表。在模型类中,您需要定义一个 TextField 字段以保存文件的文本内容。您可以使用 Python 内置的 `open()` 函数来读取本地文本文件,然后将其写入模型类实例的文本字段中。最后,使用 Django ORM 将模型对象保存到 MySQL 数据库中。以下是一个简单的示例代码: ```python # models.py from django.db import models class TextFile(models.Model): name = models.CharField(max_length=255) content = models.TextField() # views.py from django.shortcuts import render from .models import TextFile def upload_file(request): if request.method == 'POST': name = request.FILES['file'].name content = request.FILES['file'].read().decode('utf-8') file = TextFile(name=name, content=content) file.save() return render(request, 'success.html') return render(request, 'upload.html') ``` 在上面的代码中,`upload_file` 视图函数可以处理 HTTP POST 请求,并从请求中获取文本文件。然后,它将文件的名称和内容分别存储在 `TextFile` 模型类的实例中,并将其保存到数据库中。请注意,`request.FILES` 属性是一个类字典对象,它包含了所有上传的文件。例如,如果您的 HTML 表单中包含一个名为 `file` 的文件输入字段,则可以使用 `request.FILES['file']` 来获取上传的文件对象。 最后,为了显示一个简单的文件上传页面,您可以创建一个名为 `upload.html` 的 HTML 模板文件,并将其包含在您的 Django 项目中。在模板文件中,您可以使用 `enctype="multipart/form-data"` 属性来启用文件上传表单。以下是一个简单的模板代码: ```html <!-- upload.html --> <form method="post" enctype="multipart/form-data"> {% csrf_token %} <input type="file" name="file"> <button type="submit">Upload</button> </form> ``` 以上就是使用 Django 将本地文本文件存储到 MySQL 数据库中的简单步骤。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值