显示 Databases/Tables 进入 OUTFILE
Show Databases/Tables INTO OUTFILE
有没有办法将 SHOW DATABASES
或 SHOW TABLES
命令的输出输出到文本文件,类似于 SELECT ... INTO OUTFILE
的工作方式?
INTO OUTFILE
在 SHOW
命令上使用时会产生语法错误。如果有办法使用 cmdline 工具(例如 mysqldump)生成此命令,我愿意接受外部命令。
你可以试试这个:
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';
最好的输出方式是将数据通过管道传输到文件中。例如:
mysql -u root -e "SHOW DATABASES" > my_outfile.txt
@Velko 的回答是一个很好的答案,但前提是您可以访问服务器文件系统。如果服务器与客户端位于不同的系统上,管道将是在本地客户端系统上获取文件的唯一方法。
有没有办法将 SHOW DATABASES
或 SHOW TABLES
命令的输出输出到文本文件,类似于 SELECT ... INTO OUTFILE
的工作方式?
INTO OUTFILE
在 SHOW
命令上使用时会产生语法错误。如果有办法使用 cmdline 工具(例如 mysqldump)生成此命令,我愿意接受外部命令。
你可以试试这个:
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';
最好的输出方式是将数据通过管道传输到文件中。例如:
mysql -u root -e "SHOW DATABASES" > my_outfile.txt
@Velko 的回答是一个很好的答案,但前提是您可以访问服务器文件系统。如果服务器与客户端位于不同的系统上,管道将是在本地客户端系统上获取文件的唯一方法。