關於SHELL+MYSQL

zjungle發表於2020-12-11

1、SHELL遠端連線MYSQL
mysql -h hostname -P port -u username -pUSERPWD -D databesename
注意-p和密碼之間沒有空格

mysql -h ${ADDRESS} -P ${PORT} -u ${DBUSR} -p${DBUSRPWD} -D ${DBNAME}

2、SHELL連線MYSQL執行指令碼並輸出html
方法一、管道符 輸出sql結果到指定檔案${RESULT_FILE}

mysql -h ${ADDRESS} -P ${PORT} -u ${DBUSR} -p${DBUSRPWD} -D ${DBNAME}  --html >> ${RESULT_FILE} <<EOF
select version() as "資料庫版本",database() as "當前資料庫";
\q;
EOF

方法二、-e${SQL}輸出sql結果到指定檔案

SQL='select version(),database()'
mysql -h ${ADDRESS} -P ${PORT} -u ${DBUSR} -p${DBUSRPWD} -D ${DBNAME}  --html -e'${SQL}'>> ${RESULT_FILE}

用這種方法,sql語句最好就不要有引號什麼的,轉義太麻煩了

方法三、tee輸出過程中所有日誌
上面都是將輸出結果重定向到檔案裡去了,如果不重定向,通過tee命令將之後的內容記錄到檔案則會展示查詢語句和查詢了多少行的資訊
示例:

mysql -h ${ADDRESS} -P ${PORT} -u ${DBUSR} -p${DBUSRPWD} -D ${DBNAME}  --html 
tee test.html # tee命令表示將之後的內容記錄到某個檔案
select * from test.tab_json;
notee;# 關閉記錄日誌

展示的結果就是下面這個亞子:
在這裡插入圖片描述

這裡有篇文章可以參考:
https://www.cnblogs.com/chuanzhang053/p/9323017.html