啟動 MySQL Shell
mysqlsh
上面的命令只是啟動 MySQL Shell,並沒有連線到 MySQL 例項。這個時候可以檢視一下狀態:
\status
輸出結果如下:
MySQL Shell version 8.0.37 Not Connected.
該輸出顯示了當前的 MySQL 版本,以及一條我們尚未連線到 MySQL 例項的訊息。由於我們尚未連線到資料庫,所以這條資訊是合理的。
連線到 MySQL 例項
使用以下類似命令連線資料庫
\c root@localhost
再次檢查狀態
再次執行 \status 命令檢查一下狀態。
MySQL localhost JS > \status MySQL Shell version 8.0.37 Connection Id: 25 Current schema: Current user: root@localhost SSL: Not in use. Using delimiter: ; Server version: 8.0.32 MySQL Community Server - GPL Protocol version: Classic 10 Client library: 8.0.37 Connection: Localhost via UNIX socket Unix socket: /data/mysql_data/mysql.sock Server characterset: utf8mb4 Schema characterset: utf8mb4 Client characterset: utf8mb4 Conn. characterset: utf8mb4 Result characterset: utf8mb4 Compression: Disabled Uptime: 11 days 19 hours 57 min 59.0000 sec Threads: 2 Questions: 267 Slow queries: 8 Opens: 308 Flush tables: 13 Open tables: 45 Queries per second avg: 0.000 MySQL localhost JS >
可以看到例項的執行時間、當前使用的分隔符以及其他有用資訊。有一次,我在建立儲存函式時更改了分隔符,卻忘了把它改回 ;。第二天,我花了很多時間來確定為什麼我的查詢都無法正常工作。在使用了 \status 之後,我立刻發現了問題所在。
切換到指定的資料庫
\u devdb
再次檢查一下狀態,看看當前的 schema 是不是已經切換了
MySQL Shell version 8.0.37 Connection Id: 25 Current schema: devdb Current user: root@localhost SSL: Not in use. Using delimiter: ; Server version: 8.0.32 MySQL Community Server - GPL Protocol version: Classic 10 Client library: 8.0.37 Connection: Localhost via UNIX socket Unix socket: /data/mysql_data/mysql.sock Server characterset: utf8mb4 Schema characterset: utf8mb4 Client characterset: utf8mb4 Conn. characterset: utf8mb4 Result characterset: utf8mb4 Compression: Disabled Uptime: 11 days 19 hours 58 min 33.0000 sec Threads: 2 Questions: 274 Slow queries: 8 Opens: 308 Flush tables: 13 Open tables: 45 Queries per second avg: 0.000
總結
MySQL Shell 提供了一種快速方法來檢查與 MySQL 例項的連線狀態。\status 命令可用於驗證當前正在使用的連線,或檢查連線使用的當前使用者或分隔符。該命令還可以幫助識別字符集的潛在問題。