我按照this站點上的指南進行操作,嘗試排除其中名稱爲turnkey
的數據庫。忽略備份腳本中的mysql表
find /var/lib/mysql -mindepth 1 -maxdepth 1 -type d | cut -d'/' -f5 | grep -v ^mysql\$ | tr \\\r\\\n ,\ `
此命令返回所有的數據庫名稱,我該如何刪除交鑰匙?
我按照this站點上的指南進行操作,嘗試排除其中名稱爲turnkey
的數據庫。忽略備份腳本中的mysql表
find /var/lib/mysql -mindepth 1 -maxdepth 1 -type d | cut -d'/' -f5 | grep -v ^mysql\$ | tr \\\r\\\n ,\ `
此命令返回所有的數據庫名稱,我該如何刪除交鑰匙?
您顯示的命令是Linux/unix shell命令。如果您添加另一個步驟
grep -v turnkey
您將省略其中包含單詞「turnkey」的任何行。
像這樣:
find /var/lib/mysql -mindepth 1 -maxdepth 1 -type d |
cut -d'/' -f5 |
grep -v ^mysql\$ |
grep -v turnkey
tr \\\r\\\n ,\ `
你沒問,如果這是一個好主意。我不認爲這是因爲它依賴於MySQL服務器守護進程軟件的特定ondisk結構,它不是系統正式規範的一部分。換句話說,它可能會改變。
你可以這樣做:
SELECT SCHEMA_NAME FROM `information_schema`.`SCHEMATA`
WHERE SCHEMA_NAME NOT LIKE '%turnkey%'
ORDER BY SCHEMA_NAME
你可以用一點點改進的腳本沒有任何額外的事業,只是純粹的發現:
find /var/lib/mysql -mindepth 1 -maxdepth 1 -type d ! \(-name turnkey -or -name mysql \) -printf "%f "
或者只是修改您的變體在grep -v
語句添加turnkey
從列表中排除:
find /var/lib/mysql -mindepth 1 -maxdepth 1 -type d | cut -d'/' -f5 | grep -v "^mysql\$\|^turnkey$" | tr \\\r\\\n ,\ `
我很欣賞這一點,因爲我也爲這個教程中去,甚至沒有考慮他們的教程之外思考,可恥的是我沒有用'mysql的-e「做....「',哇謝謝你! –