程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 不登陸數據庫執行mysql命令小結

不登陸數據庫執行mysql命令小結

編輯:MySQL綜合教程

 

不登陸數據庫執行mysql命令小結

(本文適合有一定mysql數據庫經驗的讀者)

#########################################################

 

 

█1.通過echo實現(這個比較常見)

echo "show databases;" | mysql -uroot -p'oldboy' -S /data/3308/mysql.sock

提示:此法適合單行字符串比較少的情況。

█2.通過cat實現(此法用的不多)

cat |mysql -uroot -p'oldboy' -S /data/3308/mysql.sock << EOF

show databases;

EOF

提示:此法適合多行字符串比較多的時候。

█3.通過mysql -e參數實現

mysql -u root -p'oldboy' -S /data1/3307/mysql.sock -e "show databases;"

█ 特殊生產場景應用:

例一:mysql自動批量制作主從同步需要的語句。

cat |mysql -uroot -p'oldboy' -S /data/3308/mysql.sock<< EOF

        CHANGE MASTER TO 

 MASTER_HOST='10.0.0.16',

 MASTER_PORT=3306,

 MASTER_USER='oldboyrep',

 MASTER_PASSWORD='oldboyrep',

 MASTER_LOG_FILE='mysql-bin.000025'

 MASTER_LOG_POS=4269;

EOF

提示:大家多注意整個語句的寫法,而不是cat中的內容。

例二:mysql線程中,“大海撈針”

   平時登陸數據庫show processlist;,發現結果經常超長,找自己要看的的比較困難,而且,

SQL顯示不全。如果直接執行show full processlist那更是瞬間滾了N屏。找到有問題的

SQL語句非常困難。

現在好了,老男給你們推薦如下語句。

mysql -u root -p'oldboy' -S /data1/3307/mysql.sock -e "show full processlist;"|grep -v Sleep

過濾當前執行的SQL語句完整內容,這條命令很有用。不知道你能否體會到。後面還可以加iconv等對中文轉碼,

根據需求過濾想要的內容,此命令屢試不爽啊。

 

 

本文出自 “老男孩的linux博客” 博客

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved