将 mysql 查询结果输出到文件
直接用 mysql 命令
 # 连接本地数据库,用户名为 gino 密码为 123456 指定所连接的数据库为 mysql
 gino@gino-exploit:~$ mysql -h localhost -ugino -p123456 -D mysql  
# select 语句的结果输出到 /tmp 目录下的文件 user.xls
 mysql> select host,user,password from user into outfile '/tmp/user.txt';
如果报错一下错,说明当前登录用户没有导出文件的权限,添加权限grant file on test.* to "user"@"%";
ERROR 1227 (42000): Access denied; you need (at least one of) the FILE privilege(s) for this operation 
添加权限如果报以下错,提示该权限是global,必须使用*.* 方式
ERROR 1221 (HY000): Incorrect usage of DB GRANT and GLOBAL PRIVILEGES 
换成grant file on *.* to "user"@"%";
然后在执行导出语句select host,user,password from user into outfile '/tmp/user.txt';
如果提示以下错误,说明不能导出指定的目录,mysql文件的导入和导出路径有默认的设置
ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement 
可以使用以下命令来查看导入导出默认路径
show variables like '%secure%'; 

修改导出时的路径为默认路径即可导入导出。或者修改配置文件vim /etc/my.cnf
secure-file-priv的值有三种情况:
secure_file_prive=null 限制mysqld 不允许导入导出
secure_file_priv=/path/ 限制mysqld的导入导出只能发生在默认的/path/目录下
secure_file_priv='' 不对mysqld 的导入 导出做限制
 设置查询都结果都自动写入文件
 mysql> pager cat > /tmp/test.txt
 PAGER set to 'cat > /tmp/test.txt'
 mysql> select host,user,password from user;
 查询结果输出到 test.txt 文件中,取消写入,执行 pager 命令
 mysql> pager 
 Default pager wasn't set, using stdout.
 mysql> select host from user;
 +--------------+
 | host         |
 +--------------+
 | %            |
 | 127.0.0.1    |
 | ::1          |
 | gino-exploit |
 | localhost    |
 | localhost    |
 +--------------+
 6 rows in set (0.00 sec)
 注意: pager cat >  这里用的是 “>”  不是追加( >> ) ,写入多条结果只会保存最后一条,如果要保存多条,用追加。
在 shell 命令行执行 mysql 语句,查询结果写入文件
 第一种格式
 gino@gino-exploit:~$ mysql -h localhost -ugino -p123456 -D mysql -e "select host,user,password from user" > /tmp/sh.txt
第二种格式
 gino@gino-exploit:~$ mysql -h localhost -ugino -p123456 < t.sql  > /tmp/sql.txt
 t.sql 的内容如下
 gino@gino-exploit:~$ cat t.sql 
 use mysql;
 select host,user,password from user;
第三种格式
 mysql -h localhost -ugino -p123456 -e "source t.sql" > /tmp/sousql.txt
 推荐使用第一种格式,曾做过一个项目,因为数据库服务器的某些配置的原因,同样的查询语句(查询结果为395行),使用第一种方式生成的文件内容是396行(多一样是会将select语句后面的字段写在文件第一行)完整的,使用第二种方式生成的文件内容加上select语句后面的字段只有25行

                
            
        
浙公网安备 33010602011771号