java 文本文件 mysql_MySql 中导入txt文本文件数据

e95dd56157a5adf89e474066c2ae04d3.png

其实 的这个问题是mysql中的一个核心问题,既mysql数据的备份和恢复

可以使用三种方式

1.使用sql语句导入导出

2.使用mysqldump 和mysqlimport 工具

3.直接copy 数据文件 既冷备份

说说的详细,就给积分,那 就说详细些

一.使用sql语句完成mysql的备份和恢复

可以使用select into outfile语句备份数据,并用load data infile语句恢复数据。这种方法只能导出数据的内容,不包括表的结构,如果表的结构文件损坏, 必须要先恢复原来的表的结构。

语法:

select * into {outfile | dumpfile} 'file_name' from tbl_name

load data [low_priority] [local] infile 'file_name.txt' [replace | ignore]

into table tbl_name

select ... into outfile 'file_name'格式的select语句将选择的行写入一个文件。文件在服务器主机上被创建,并且不能是已经存在的(不管别的,这可阻止数据库表和文件例如“/etc/passwd”被破坏)。select ... into outfile是load data infile逆操作。

load data infile语句从一个文本文件中以很高的速度读入一个表中。如果指定local关键词,从客户主机读文件。如果local没指定,文件必须位于服务器上。(local在mysql3.22.6或以后版本中可用。)

为了安全原因,当读取位于服务器上的文本文件时,文件必须处于数据库目录或可被所有人读取。另外,为了对服务器上文件使用load data infile,在服务器主机上 必须有file的权限。使用这种select into outfile语句,在服务器主机上 必须有file权限。

为了避免重复记录,在表中 需要一个primary key或unique索引。当在唯一索引值上一个新记录与一个老记录重复时,replace关键词使得老记录用一个新记录替代。如果 指定ignore,跳过有唯一索引的现有行的重复行的输入。如果 不指定任何一个选项,当找到重复索引值时,出现一个错误,并且文本文件的余下部分被忽略时。

如果 指定关键词low_priority,load data语句的执行被推迟到没有其他客户读取表后。

使用local将比让服务器直接存取文件慢些,因为文件的内容必须从客户主机传送到服务器主机。在另一方面, 不需要file权限装载本地文件。如果 使用local关键词从一个本地文件装载数据,服务器没有办法在操作的当中停止文件的传输,因此缺省的行为好像ignore被指定一样。

当在服务器主机上寻找文件时,服务器使用下列规则:

 如果给出一个绝对路径名,服务器使用该路径名。

 如果给出一个有一个或多个前置部件的相对路径名,服务器相对服务器的数据目录搜索文件。

 如果给出一个没有前置部件的一个文件名,服务器在当前数据库的数据库目录寻找文件。

假定表tbl_name具有一个primary key或unique索引,备

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值