mysql查詢結果輸出到文件


方式一

在mysql命令行環境下執行: sql語句+INTO OUTFILE +文件路徑/文件名 +編碼方式(可選)

例如:

  SELECT * FROM (表名) INTO OUTFILE '/usr/local/test.txt' ;

注意事項:

1)可能會報沒有 select command denied(沒有查詢權限) 或者Access denied for user(沒有file權限) ,增加權限之后即可。

2)不能存在同名文件,否則sql執行失敗。

3)生成文件格式也可以是.txt/.xls/.csv。

4) 生成的文件中可能會有中文亂碼問題,可以在語句后面+CHARACTER SET gbk (utf8等)

例如: SELECT * FROM (表名) INTO OUTFILE '/usr/local/test.txt' CHARACTER SET gbk;

5)如果sql查詢出來的數據包含有很大的數值型數據,則在excel中這些數值數據可能會出問題,因此,可以先導出為.txt/.csv文件格式,再復制黏貼到excel文件中(首先設置單元格格式為文本)

方式二

在登錄某服務器后,采用 mysql 命令執行 ,不需要登錄進mysql命令行環境下。

例如:

  mysql -h 127.0.0.1 -u用戶名 -p密碼 --default-character-set=gb2312 -e "select * from 表名" 數據庫名 > test.txt

   注:-e 查詢條件語句 后面跟上目標數據庫

若有中文亂碼,添加設置編碼方式 utf8 、gbk

 

 

不登陸數據庫執行 MySQL 命令

有的時候需要查看數據庫的某些信息,然后繼續接下來的 shell 命令操作,登錄數據庫在退出嫌麻煩可以使用這招:

例 1:列出所有數據庫

mysql -h host_name -P3306 -u user_name -p'password' -se "show databases;"

例 2:列出 database 下的所有表

mysql -h host_name -P3306 -u user_name -p'password' -D database -se "show tables;"

host_name: 數據庫 host 或者 IP 地址;

user_name: 登錄數據庫用戶名;

password:登錄數據庫密碼;

database: 數據庫名;

例:

[root@localhost tmp]# mysql -h 172.16.30.50 -uroot -proot -D plat -se "SELECT ip_str,major_version,minor_version,vendor,series,model FROM plat_resource_config"

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM