1、实验内容:

利用SQL语句“load data ”将“.txt”文本文件中的数据导入到mysql中

2、实验过程:

首先我创了一个txt(也可以是其他的),设置其编码为utf-8,在windows下默认编码是ANSI。

设置方法,打开一个空txt文件,点击另存,编码显示是ANSI,换成UTF-8

 张三 31 北京 3000
李四 25 杭州 4000
王五 45 上海 4500
小明 29 天津 2331

假设以上就是一个txt文件中的内容(文件名叫pid.txt,在E盘中)

根据这个表中的内容创建一个表:

 mysql> create table per1(
-> name varchar(),
-> age int,
-> city varchar(),
-> salary int
-> );
Query OK, rows affected (0.64 sec)

然后导入数据,当然,有很大几率会出错:因为你很有可能遇上

mysql secure_file_priv 文件读写问题(这是一个关于能否允许导入或者导出mysql与外界的设置)

 mysql> load data infile "E:\vs\ppid.txt"
-> into table per(name,age,city,salary);
ERROR (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
mysql> show variables like '%secure%';
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| require_secure_transport | OFF |
| secure_file_priv | NULL |
+--------------------------+-------+
rows in set, warning (0.01 sec)

我的secure_file_priv为空,说明不允许导入导出数据,需要在my.ini中修改secure_file_priv的值,一般会没有secure_file_priv,所以为了安全认为secure_file_priv为不允许,手动添加secure_file_priv

 1 secure_file_priv = '莫目录名'   #只允许在这个目录里做事    
2 secure_file_priv = #这里不写 表示任意一个路都可以导入导出
3 secure_file_priv = NULL #不允许导入导出,啥都不许干。
#综上所诉,我选择 secure_file_priv =

由上图可看出一开始我也写了一个目录,后来把路径给注释掉了。

下方有 # 号往后的一些配置在此截图的上方已经配置好了,为了某个时候可能需要 就将只其注释掉,而不是删去。

( ps:改完my.ini内容过后要重启mysql。net stop mysql , net start mysql ,而不是关掉命令行界面)

言归正传,开始干正事了。。。

这是一个更改后的utf-8的txt文件

先登陆

选择一个库,不然呆会儿在那个库中工作都不知道,它会报错。

然后导入,导入,当然,不可避免出错了,显示错位,并且还将”4  小明  29  天津   2331“这一行数据给了name属性!!

age,city属性是这模样。

加上LINES TERMINATED BY '\r\n'  添加了两次,还是都在name里面去了,不过貌似顺眼了一点点。

添加 FIELDS TERMINATED BY '   '  LINES TERMINATED BY '\r\n';

‘  ’ 意思是空格为界分开,\r\n回车符换行符表示一行了,找下一行数据。

到此才算导入结束。不过,张三你咋这么突出??还不走寻常路。

查询过后,这是关于二进制某不可读字符的问题。

附上类似的问题解决方案,这是链接

load data导txt文件进mysql中的数据的更多相关文章

  1. MySQL中load data infile将文件中的数据批量导入数据库

    有时候我们需要将文件中的数据直接导入到数据库中,那么我们就可以使用load data infile,下面具体介绍使用方法. dao中的方法 @Autowired private JdbcTemplat ...

  2. 用python批量向数据库(MySQL)中导入数据

    用python批量向数据库(MySQL)中导入数据 现有数十万条数据,如下的经过打乱处理过的数据进行导入 数据库内部的表格的数据格式如下与下面的表格结构相同 Current database: pyt ...

  3. Vusual C++连接Mysql和从MySql中取出数据的API介绍

    .1 mysql_real_connect() 2.1.1 函数原型: MYSQL *mysql_real_connect(MYSQL *mysql, const char *host, const ...

  4. 程序一 用记事本建立文件src.dat,其中存放若干字符。编写程序,从文件src.dat中读取数据,统计其中的大写字母、小写字母、数字、其它字符的个数,并将这些数据写入到文件test.dat中。

    用记事本建立文件src.dat,其中存放若干字符.编写程序,从文件src.dat中读取数据,统计其中的大写字母.小写字母.数字.其它字符的个数,并将这些数据写入到文件test.dat中. #inclu ...

  5. PHP如何批量更新MYSQL中的数据

    最近项目需要用到批量更新数据库里的数据,在网上找了一下这方面的例子,觉得这个还不错,分享给大家. 在这个业务里里面涉及到了更新两张数据表,那么大家是不是会想到非常简单,马上上代码 $sql ,type ...

  6. 辛星浅谈mysql中的数据碎片以及引擎为MyISAM下的操作

    对于mysql中的数据碎片,事实上和我们删除数据是息息相关的,删除数据的时候必定会在数据文件里造成不连续的空白空间,对于少量的数据的删除,并不会产生多少的空白空间.假设在一段时间内的大量的删除操作,会 ...

  7. PHP批量更新MYSQL中的数据

    原文链接:https://blog.csdn.net/wuming19900801/article/details/62893429 $sql = "update newhouse_clic ...

  8. 利用Ajax实现数据的同步传输,从mysql中提取数据,通过echarts可视化

    如何将mysql数据库中的方式通过echarts可视化呢,以下面这个简单的例子向大家进行演示:   步骤一:mysql的创表和插入数据,当然这些数据也可以是你通过爬虫抓取的.     步骤二:   创 ...

  9. hadoop项目实战--ETL--(二)实现自动向mysql中添加数据

    四 项目开发 1 创建数据库db_etl,新建两张表user 和oder.表结构如第一部分图所示. 2 编写python脚本,实现自动向mysql中插入数据. 新建python 项目,目录结构如下图 ...

随机推荐

  1. spring boot集成aop实现日志记录

    1.pom依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId> ...

  2. OO第二次博客

    过去三周里,我们完成了多线程电梯的程序设计与构造.这是我第一次接触多线程编程.我感觉最大的困难在于多个线程中的操作,谁先谁后,不是像以前写的单线程程序那样严格确定,所以心里常常会比较慌.尤其是因为多线 ...

  3. 框架的一些bug问题记录

    关于java后台生成的mis表,在添加的add页面和edit页面中无法显示,去控制台里面查看.会有些错误的信息,是由于,你的那些html的标签不正常.导致无法显示. 里面有一个高级搜索,可以对这个选择 ...

  4. EF性能检测工具MiniProfilerEF6的使用

    一.在VS项目中分别安装包MiniProfiler.MiniProfiler.EF6.MiniProfiler.MVC4 二.在Global.asax文件的Application_BeginReque ...

  5. linux 下常用的50条命令

    1.find 查换文件.目录和权限 find . -name aaa.txt 在当前目录及子目录查找文件名为aaa.txt文件 find . -name "*.txt" -o -n ...

  6. NetCore +EF+Mysql 从数据库生成实体类到项目

    1.点击“工具”->“NuGet包管理器”->“程序包管理器控制台” 分别安装以下几个包 Mysql 版本: Install-Package MySql.Data.EntityFramew ...

  7. oracle之在java中调用

    1.给java项目添加oracle的驱动包ojdbc6.jar 2.添加包ojdbc6.jar,这个包在安装的服务版oracle11g的这个目录下: 3.使用.

  8. win7系统删除打印机后刷新又出现怎么办

    方法/步骤:1.进入桌面后,按下“Win + R”组合键打开运行窗口,在运行中输入“spool”并点击确定:2.之后会进入路径为“C:\Windows\System32\spool”的文件夹中,3.在 ...

  9. Git命令(Git版本:Linux 2.14.3)

    常用 git status 跟踪状态git commit -m "xxx" yyy.cppgit pull git pushgit mergetool --tool=meld 合并 ...

  10. 2017-2018_OCR_papers汇总

    2017-2018_OCR_papers 1. 简单背景 基于深度的OCR方法的发展历程 近年来OCR发展热点与趋势 检测方法按照主题进行分类 2. ECCV + CVPR + ICCV +AAAI ...