美文网首页
Mysql文件导出和导入into outfile(),load_

Mysql文件导出和导入into outfile(),load_

作者: 游戏创作者 | 来源:发表于2022-06-11 16:35 被阅读0次

我们经常有从数据库导出数据的需求,比如:导出当天新增用户数据,导出数据报表等。

其中比较常用的函数有以下三个:

  • into dumpfile()
  • into outfile()
  • load_file()

因为涉及到在服务器上写入文件,所以上述函数能否成功执行受到参数 secure_file_priv 的影响。这个值可以通过下面命令查询。

select @@secure_file_priv;
secure_file_priv

secure-file-priv的值有三种情况:

secure_file_prive=null //限制mysqld 不允许导入导出
secure_file_priv=/path/  //限制mysqld的导入导出只能发生在默认的/path/目录下
secure_file_priv=’’  //不对mysqld 的导入 导出做限制

由于这个参数不能动态更改,只能在mysql的配置文件中进行修改,然后重启生效。

Mysql 8.0 默认配置文件路径:C:\ProgramData\MySQL\MySQL Server 8.0\my.ini
Mysql重启方法:打开计算机管理>>服务与应用程序>>服务>>mysql>>右键重新启动>>完成重启

如果输入路径不对,则会报如下错误:

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

1. 查询数据:

select * from game;
查询数据

2. 导出数据:

select * from game into outfile 'game.sql'; //文件名不能重复

3. 查看导出文件:

查看导出文件

4. 删除数据库中的数据:

 delete * from game;

5. 还原数据:

load data infile 'game.sql' into table game;

6. 验证是否还原成功:

select * from game;

7. outfile和dumpfile的区别:

outfile 函数可以导出多行,而 dumpfile 只能导出一行数据
outfile 函数在将数据写到文件里时有特殊的格式转换,而 dumpfile 则保持原数据格式

8. 导出为CSV格式:

//将UID小于3的数据导出到game.csv 文件中
SELECT * FROM game where uid < 3 INTO OUTFILE 'game.csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '' LINES TERMINATED BY '\n';
导出为CSV格式

相关文章

网友评论

      本文标题:Mysql文件导出和导入into outfile(),load_

      本文链接:https://www.haomeiwen.com/subject/yfkskrtx.html