如果是对mysql整个表数据导出,可以参照文章:http://www.crazyant.net/1355.html
然而也会遇到的场景是,需要执行一个SQL语句,然后将SQL语句的结果输出到文件;
方法一:使用MySQL的select * into outfile ‘/tmp/rs.txt’ from tb_name句型
这是个不可行的方法;
举个例子,执行以下的SQL语句:
mysql -h10.10.10.10 -ucrazyant -p123456 -P3306 -e "use test; select * into outfile '/tmp/rs.txt' from tb_test;"
mysql-h10.10.10.10-ucrazyant-p123456-P3306-e"use test; select * into outfile '/tmp/rs.txt' from tb_test;" |
这个SQL总会报出下面的错误:
ERROR 1045 (28000) at line 1: Access denied for user 'crazyant'@'10.10.10.10' (using password: YES)
ERROR1045(28000)atline1:Accessdeniedforuser'crazyant'@'10.10.10.10'(usingpassword:YES) |
原因是这个语句并不是在MySQL客户端,而是在MySQL的服务器上执行的,通常用于服务器管理员在服务器机器上进行数据备份使用,由于MySQL客户端账号并没有访问服务器机器本身的权限,所以这个SQL执行不会成功。
执行下面的命令,能够将SQL语句执行的结果输出到文件:
mysql -h10.10.10.10 -ucrazyant -p123456 -P3306 -Ne "use test; select * from tb_test;" > /tmp/rs.txt
mysql-h10.10.10.10-ucrazyant-p123456-P3306-Ne"use test; select * from tb_test;">/tmp/rs.txt |
其中-Ne是执行这个SQL语句的选项,-N代表输出SQL语句执行结果中不带第一行的字段名称,-e表示要执行SQL语句;
执行下面的命令,则可以执行SQL文件,并把结果输出到文件:
新建一个文件,名称为runsql.sql,内容为:
use test; select * from db_test;
usetest;select *fromdb_test; |
然后这样执行命令:
mysql -h10.10.10.10 -ucrazyant -p123456 -P3306 -N < runsql.sql > /tmp/rs.txt
mysql-h10.10.10.10-ucrazyant-p123456-P3306-N |
其中-N命令仍然表示不输出表头字段说明(第一行),小于号表示输入重定向,runsql.sql的文件内容会被发送给mysql的命令,大于号则表示输出重定向,会将命令执行的结果输出到文件;
总结:
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
C++高性能并发应用_C++如何开发性能关键应用
Java AI集成Deep Java Library_Java怎么集成AI模型部署
Golang后端API开发_Golang如何高效开发后端和API
Python异步并发改进_Python异步编程有哪些新改进
C++系统编程内存管理_C++系统编程怎么与Rust竞争内存安全
Java GraalVM原生镜像构建_Java怎么用GraalVM构建高效原生镜像
Python FastAPI异步API开发_Python怎么用FastAPI构建异步API
C++现代C++20/23/26特性_现代C++有哪些新标准特性如modules和coroutines
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号