MySQL 是當今使用最廣泛的關係資料庫管理系統 (RDBMS) 之一。 它是一個強大的資料庫平台,允許創建和管理可擴展的資料庫,主要使用結構化查詢語言 (SQL)。
MySQL 伺服器是資料庫所在的環境,也是訪問資料庫的地方。 作為伺服器管理員,您經常需要檢索有關此環境的詳細信息——列出伺服器上的資料庫、顯示來自特定資料庫的表、查看用戶角色和許可權、訪問約束等。
本文將解釋如何通過命令提示符列出 MySQL 資料庫的來龍去脈。
列出 MySQL 資料庫的先決條件
您必須在本地機器上運行 MySQL 伺服器才能開始。 如果你沒有 MySQL,有幾種安裝方法:
- 安裝 WAMPServer、XAMPP、MAMP 或任何其他包含 MySQL 的軟體分發堆棧。
- 直接從他們的官方網站下載並運行 MySQL 安裝程序,通過設置過程來配置和安裝 MySQL 伺服器和其他工具。
為了方便地使用命令行運行 MySQL 命令,您需要將 MySQL 可執行文件的路徑添加到系統環境中。 如果您使用選項 2 安裝 MySQL,則不需要此步驟,因此請隨意跳過下一節。
將 MySQL 路徑添加到系統的變數環境
如果您在 Windows 計算機上運行 XAMPP 或 WAMP,本節將指導您將 MySQL 可執行路徑添加到系統的變數環境中。
Kinsta 把我寵壞了,以至於我現在要求每個供應商都提供這種水平的服務。 我們還嘗試通過我們的 SaaS 工具支持達到這一水平。
來自@Suganthanmn 的 Suganthan Mohanadasan
查看計劃
首先,啟動您的 Windows 文件資源管理器並導航到此 PC。 單擊已安裝 WAMP 或 XAMPP 包 (C:) 的驅動器。
如果您正在運行 XAMPP,請導航到 xampp > mysql > bin 並將完整路徑複製到 bin 文件夾。 對於 WAMP,通過 {your-wamp-version} > bin > mysql > {your-mysql-version} > bin 導航到其完整路徑。
bin 文件夾的完整路徑。
單擊開始菜單並搜索「路徑」。 單擊編輯系統環境變數。
然後,單擊啟動和恢復下的環境變數,選擇 PATH 變數並單擊編輯。
接下來,單擊新建並將完整路徑粘貼到您的 MySQL 可執行文件(您之前複製的)。
編輯環境變數。
然後,單擊「確定」保存更改。
現在已經添加了路徑,您可以在終端中執行 MySQL 命令。
登錄到 MySQL
要列出 MySQL 資料庫,用戶必須有權訪問所有資料庫,或者您必須設置一個全局 SHOW DATABASES 許可權,授予所有用戶訪問許可權。
在通過命令提示符登錄之前確保您的 MySQL 伺服器正在運行:
mysql -u -p
注意:替換為您的用戶名。 MySQL的默認用戶名是root,密碼為空(默認沒有密碼)。
登錄到 MySQL。
在 MySQL 伺服器中顯示資料庫
現在您已登錄,您可以通過執行 SHOW DATABASES 命令列出伺服器中存在的 MySQL 資料庫:
顯示資料庫;
作為回報,您將獲得存儲中存在的所有資料庫:
存儲中的資料庫列表。
在返回的六個資料庫中,information_schema 和 performance_schema 是安裝 MySQL 時自動生成的默認資料庫。
information_schema 資料庫是一個不可修改的資料庫,它存儲與存儲在 MySQL 伺服器中的資料庫和其他對象(視圖、用戶許可權、表、約束等)相關的所有信息。
過濾資料庫輸出的結果
以前,您使用 SHOW DATABASES 返回 MySQL 伺服器上的所有資料庫,但您經常需要過濾資料庫輸出,主要是當伺服器上有很多資料庫時。
LIKE 子句根據指定的模式過濾 SHOW DATABASE 的結果。 這是一般語法:
顯示資料庫,如 ”;
它必須是表示您要匹配的模式的字元串。 字元串必須以百分比符號 % 結尾,表示一個或多個字元。
例如,如果您只想顯示名稱以字母 w 開頭的資料庫,您可以運行以下命令:
顯示像 ‘w%’ 這樣的資料庫;
這是過濾後的結果:
使用「w%」時過濾的資料庫響應。
使用信息模式查詢表元數據
之前,您看到了 information_schema 資料庫如何存儲與 MySQL 伺服器環境中的資料庫、表和其他對象相關的所有信息。
information_schema 資料庫使用 schemata 表來存儲有關所有資料庫的信息。 對於資料庫過濾,您可以執行複雜的搜索來查詢特定資料庫的架構表。
例如,如果您想要名稱以「samp」或「word」開頭的資料庫,您可以組合其他幾個子句來進行複雜查詢:
SELECT schema_name FROM information_schema.schemata WHERE schema_name LIKE ‘samp%’ OR schema_name LIKE ‘word%’;
結果如下:
複雜查詢的結果。
此外,您還有 information_schema 資料庫中的 tables 表,其中包含有關所有表的信息。 同樣,您可以執行查詢以僅檢索與指定模式匹配的表。
例如,以下查詢僅返回 WordPress 表的架構信息——僅返回名稱以「wp_」開頭的表:
SELECT * FROM information_schema.tables WHERE table_name LIKE ‘wp_%’;
結果如下:
僅 WordPress 表的架構信息的結果。
在 information_schema 中找到的其他表包括列、約束、table_constraints、check_constraints 和 referential_constraints。
常見問題和最佳實踐
執行 SQL 時最常見的錯誤原因之一是未能在語句末尾使用分號。
另一種是使用無效的 SQL 語法或拼寫錯誤的表/列名。 為避免這種情況,請交叉檢查表或列名稱以確保拼寫正確。 一定要交叉檢查你的語法。
以下是一些需要牢記的其他最佳實踐。
對 SQL 關鍵字使用大寫
編寫 SQL 代碼時,始終使用大寫的 SQL 關鍵字和小寫的表名和列名。 這使您的代碼更具可讀性並且不易出錯。
所以,而不是這個:
select * from information_schema.tables where table_name like ‘wp_%’;
做這個:
SELECT * FROM information_schema.tables WHERE table_name LIKE ‘wp_%’;
避免使用 SELECT *
避免在 SQL 查詢中使用 SELECT *。 您的請求不清楚,因為您不能總是知道它會返回什麼。 而是指定要從表中選擇的列。
所以代替這個:
從 users.profile 中選擇 * 除了(電話)
做這個:
選擇姓名、出生日期、地址、國家、地址、FROM user.profile
縮進你的代碼
最後,使查找錯誤更容易的另一個技巧是縮進您的代碼。 它使它更具可讀性!
資料庫管理員
或者,您可以選擇通過使用資料庫管理器來管理您的資料庫,而無需編寫 SQL。 這使用戶無需編寫 SQL 查詢即可訪問資料庫管理功能。 該軟體連接到 MySQL 伺服器並提供用戶界面來公開資料庫功能。 連接後,UI 將顯示伺服器上的所有資料庫。 管理工具的外觀和感覺各不相同,但過程相似。
DevKinsta 的資料庫管理器。
有多種工具可供選擇,包括 phpMyAdmin 和 Adminer,這兩種工具都可以通過 DevKinsta 訪問。 DevKinsta 的默認管理工具是 Adminer,因為它輕量級、簡單、快速,但可以輕鬆訪問 phpMyAdmin。
概括
作為伺服器管理員,您需要能夠高效準確地檢索有關 MySQL 伺服器上資料庫的詳細信息。 查看伺服器上的資料庫、查看特定表和其中的信息以及訪問有關用戶角色和許可權的信息的能力都是至關重要的任務。 幸運的是,從命令行使用 SQL 可以讓這一切變得輕而易舉。
當您的資料庫管理需要超越查詢表時,Kinsta 可以提供幫助。 立即詳細了解我們的可擴展資料庫託管選項!
通過以下方式節省時間、成本並最大限度地提高站點性能:
- 來自 WordPress 託管專家的即時幫助,24/7。
- Cloudflare 企業集成。
- 全球受眾覆蓋全球 35 個數據中心。
- 通過我們內置的應用程序性能監控進行優化。
所有這些以及更多,在一個沒有長期合同、協助遷移和 30 天退款保證的計劃中。 查看我們的計劃或與銷售人員交談以找到適合您的計劃。