显示数据库/表 INTO OUTFILE

Posted

技术标签:

【中文标题】显示数据库/表 INTO OUTFILE【英文标题】:Show Databases/Tables INTO OUTFILE 【发布时间】:2016-02-10 18:21:44 【问题描述】:

有没有办法让SHOW DATABASESSHOW TABLES 命令的输出输出到文本文件,类似于SELECT ... INTO OUTFILE 的工作方式?

INTO OUTFILE 用于SHOW 命令时会产生语法错误。如果有办法使用 cmdline 工具(如 mysqldump)生成此命令,我愿意接受外部命令。

【问题讨论】:

【参考方案1】:

最好的输出方式是将数据通过管道传输到文件中。例如:

mysql -u root -e "SHOW DATABASES" > my_outfile.txt

@Velko 的答案是一个很好的答案,但前提是您可以访问服务器文件系统。如果服务器与客户端位于不同的系统上,则管道将是在本地客户端系统上获取文件的唯一方法。

【讨论】:

【参考方案2】:

你可以试试这个:

SELECT TABLE_SCHEMA INTO OUTFILE '/tmp/stack.txt' FROM information_schema.TABLES GROUP BY TABLE_SCHEMA

另一个例子:

SET @databasesInfo := '';
SHOW DATABASES WHERE (@databasesInfo := CONCAT(@databasesInfo, `Database`, ','));
SELECT @databasesInfo INTO OUTFILE '/tmp/so2.txt';

【讨论】:

第二个是我必须说的很酷的变量使用(除了输出文件末尾的命令) 您的两种解决方案都有效,但@PressingOnAlways 的答案对我来说更简单。为 concat-variable hack +1,非常聪明。

以上是关于显示数据库/表 INTO OUTFILE的主要内容,如果未能解决你的问题,请参考以下文章

select … into outfile 备份恢复(load data)以及mysqldump时间对比

Mysql select into outfile 命令

mysql 存储过程中的select into outfile语句生成的文件放哪里

mysql将表数据导出为txt或csv文件

“ INTO OUTFILE ”语句未完成而终止,锁定文件

逻辑备份,mysqldump,SELECT…INTO OUTFILE,恢复