显示数据库/表 INTO OUTFILE
Posted
技术标签:
【中文标题】显示数据库/表 INTO OUTFILE【英文标题】:Show Databases/Tables INTO OUTFILE 【发布时间】:2016-02-10 18:21:44 【问题描述】:有没有办法让SHOW DATABASES
或SHOW 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时间对比