共计 1044 个字符,预计需要花费 3 分钟才能阅读完成。
MySQL 在本身有提供高效的导入导出文件的服务,当然在这里指的并不是把结果转储成 SQL 脚本,在平时把查询的结果过导出成 CSV 文件的就是一种,在这里 简单的说一说如何在 MySQL 中正确的使查询结果导入导出成文件及用文件快速导入,首先 MySQL 查询结果的导出可以借助于各种客户端工具来快速时间,如 Navicat 等等,或者是自身的 mysql 二进制文件来把结果导出而其中在 MySQL 下最为高效的就是自身的 SELECT ··· INTO OUTFILE 的方式导出,在使用时很简单,如下把查询的结果导成 CSV 文件
SELECT * FROM book_tbl INTO OUTFILE ‘/tmp/book_tbl.csv’ FIELDS TERMINATED BY ‘,’ OPTIONALLY ENCLOSED BY ‘”‘ LINES TERMINATED BY ‘\n’;
如此指定分隔符及路径就可以把查询结果导出成各种文件,不过需要注意的是在使用这一种方法需要在 MySQL 中开启对文件写入的相关目录权限,一般 MySQL 常规部署后都是用 mysql 用户来启动 MySQL 那么在导出时需要该目录是在 mysql 用户下可以写入的权限一般可以导出在 Unix 系统下可以导出到 /tmp 目录,其中可以通过设置 my.cnf 中的 secure_file_priv 来设置允许导出到服务器本地下,要注意的是这个变量不支持动态修改,所以在添加修改后需要重启 MySQL,如果在设置时没有指定路径则是允许到任意路径,如果 指定的值是 null 则是不允许导出,缺省就是这个值,平时在使用的时候建议指定导出目录,如指定在 /tmp 目录下
secure_file_priv = /tmp
当然使用这种办法导出的文件也是在服务器上,如果是需要导出到客户端本地则要使用相应的客户端工具,而在导入时则可以使用 LOAD DATA INFILE 来从文件中导入 MySQL 中,如下把服务器下的 CSV 导入事先建好的表中
LOAD DATA INFILE ‘/tmp/book_tbl.csv’ INTO TABLE book_tbl_file FIELDS TERMINATED BY ‘,’ OPTIONALLY ENCLOSED BY ‘”‘ LINES TERMINATED BY ‘\n’;
同 SELECT …… INTO OUTFILE 的方式一样可以根据不同的文件定义不同的文件分隔符来用文件导入数据库且该文件 MySQL 有权限读取。
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-10/148109.htm