Mysql

為什麼我要使用 MySQL“系統”命令?

  • April 22, 2021

我可以MySQL 客戶端的system命令做什麼?它為什麼存在?

我見過的最有成效的用途是環顧文件系統(例如,記住您想要 SOURCE 或 LOAD FILE 的文件名)。

mysql> system ls /tmp
backup.sql 
mysql> source /tmp/backup.sql
Query OK, 1 row affected (0.02 sec)

mysql>

據我所知,您不能將查詢結果傳遞給命令的 STDIN,也不能將命令的 STDOUT 傳遞給 MySQL 查詢……它似乎沒有廣泛的用處。

SYSTEM 命令實際上有一個比簡單地執行ls來查看目前目錄內容更有用的應用程序:

文件中所述(並由評論詳細說明),這是進行備份的方法:

echo "FLUSH TABLES WITH READ LOCK; SYSTEM snapshot.sh; UNLOCK TABLES;" | mysql

snapshot.sh 包含使用 LVM、ZFS 或 btrfs 功能製作 mysql 表的原子快照的程式碼。您不能從 shell 腳本將其拆分為多個命令,因為一旦 mysql 會話關閉,表鎖就會被釋放。

我用它來檢查系統統計資訊,而不用離開舒適的 mysql 提示符。在調試性能問題時非常有用,不必保持單獨的視窗打開,或者登錄和退出 mysql 提示:

mysql> \! top
mysql> \! free -m
mysql> \! iostat -xd 3 6

請注意,這\!是 mysql 命令行中“系統”的別名。

引用自:https://dba.stackexchange.com/questions/41184