在mysql中,可以使用select…into outfile语句将查询结果数据导出到文本文件。
#select...into outfile示例
#将数据放到文本文件中,其它数据库也能使用
select * from employee into outfile 'D:\\employee.txt'
fields terminated by ','
enclosed by '"'
lines terminated by '\r\n';
这样的话会报错
变量secure_file_priv取不同的值时,有不同的要求
secure_file_priv值为null时,表示不允许导入导出
secure_file_priv值为空时,表示没有任何限制
secure_file_priv值为指定路径时,表示导入导出只能在指定路径下完成
#查看secure_file_priv变量
show variables like ‘%secure_file_priv%’ ;
将路径改为: C:\ProgramData\MySQL\MySQL Server 5.7\Uploads\
#select...into outfile示例
#将数据放到文本文件中,其它数据库也能使用
select * from employee into outfile 'C:\\ProgramData\\MySQL\\MySQL Server 5.7\\Uploads\\employee.txt'
fields terminated by ','
enclosed by '"'
lines terminated by '\r\n';
通常,我们使用mysql命令连接数据库,mysql命令有一个-e选项,可以执行指定的sql语句,再结合DOS的重定向操作符">"可以将查询结果导出到文件。
#示例
mysql -h localhost -u root -p -D mydb -e "select * from employee" > E:\employee.txt
mysqldump是mysql用于转存数据库的实用程序,它主要产生一个sql脚本,其中包含创建数据库、创建数据表、插入数据所必需的sql语句。
#导出mydb数据库(含数据)
mysqldump -h localhost -u root -p mydb > d:/mydb.sql
#导出mydb数据库(不含数据)
mysqldump -h localhost -u root -p mydb --no-data > d:/mydb.sql
#导出mydb.employee数据表
mysqldump -h localhost -u root -p mydb employee > d:/employee.sql
#导出mydb数据库,忽略contacts表
mysqldump -h localhost -u root -p mydb --ignore-table mydb.contacts > d:/employee.sql