首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 命令列連線與基礎資訊查看完整教學:從連線到引擎、版本、權限一覽

     編輯:MySQL 綜合教學

MySQL 命令列連線與基礎資訊查看完整教學:從連線到引擎、版本、權限一覽

雖然有 phpMyAdmin、Navicat 等圖形工具,但命令列操作是理解 MySQL 內部機制、排查線上問題、自動化運維的基石。本文系統整理連線參數、核心資訊查看命令與實戰輸出解讀。

一、命令列連線標準姿勢

# 完整格式
mysql -h  -u  -p -P  -D 

# 實戰常用簡寫
mysql -u root -p                    # 本機、預設端口 3306、交互輸入密碼 (最安全)
mysql -u root -p'Pass123' -h 10.0.0.1 -P 3306  # 指定主機/端口/密碼 (腳本用,注意無空格)
mysql -u readonly -p -D report_db   # 直接進入指定庫

安全鐵律:

  • **嚴禁在命令列明文輸入密碼** (-ppassword),會殘留在 Shell 歷史 (~/.bash_history) 與進程列表 (ps -ef)。
  • 生產環境**禁止使用 root 直連應用**,建立專用只讀/讀寫帳號,最小權限原則。
  • 使用 ~/.my.cnf 客戶端配置檔存放憑證:[client] user=root password=xxx,權限 600。

二、連線成功後的標準驗證流程

mysql> SELECT VERSION();           -- 確認版本、協議兼容性
mysql> SELECT USER(), CURRENT_USER(); -- 確認身份、權限上下文
mysql> SHOW VARIABLES LIKE 'character_set_%'; -- 確認字元集一致性 (防亂碼)
mysql> SHOW ENGINES;             -- 確認引擎支援、預設引擎
mysql> SHOW DATABASES;           -- 確認可見資料庫範圍

三、核心資訊查看命令速查表

查詢目標命令關鍵輸出解讀
版本資訊SELECT VERSION();如 5.7.33-log、8.0.28,確認功能支援度
儲存引擎SHOW ENGINES;Support 欄: YES/DEFAULT/NO。DEFAULT 為當前預設 (通常 InnoDB)。Transactions、XA、Savepoints 確認事務支援
當前用戶SELECT USER();連線時指定的用戶@主機
權限用戶SELECT CURRENT_USER();權限系統實際匹配的用戶@主機
用戶具體權限SHOW GRANTS FOR 'user'@'host';列出 GRANT 語句,確認最小權限落實
可見資料庫SHOW DATABASES;受權限限制,非超級用戶僅見有權限的庫
切換資料庫USE db_name;後續無庫前綴操作預設針對此庫
當前庫所有表SHOW TABLES;配合 SHOW TABLE STATUS 看行數、引擎、大小
表結構詳情DESC table_name; / SHOW COLUMNS FROM table_name;欄位、型別、Null、Key、Default、Extra
建表完整 DDLSHOW CREATE TABLE table_name;含引擎、字元集、分區、索引定義,遷移必備
表索引詳情SHOW INDEX FROM table_name;索引名、唯一性、欄位順序、基數

四、實戰輸出範例解讀

SHOW ENGINES 關鍵輸出

+--------------------+---------+------------------------------------------------------------+--------------+------+------------+
| Engine             | Support | Comment                                                    | Transactions | XA   | Savepoints |
+--------------------+---------+------------------------------------------------------------+--------------+------+------------+
| InnoDB             | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES          | YES  | YES        |
| MyISAM             | YES     | MyISAM storage engine                                      | NO           | NO   | NO         |
| MEMORY             | YES     | Hash based, stored in memory, useful for temporary tables  | NO           | NO   | NO         |
| CSV                | YES     | CSV storage engine                                         | NO           | NO   | NO         |
| ARCHIVE            | YES     | Archive storage engine                                     | NO           | NO   | NO         |
| BLACKHOLE          | YES     | /dev/null storage engine (anything written disappears)     | NO           | NO   | NO         |
| PERFORMANCE_SCHEMA | YES     | Performance Schema                                         | NO           | NO   | NO         |
| FEDERATED          | NO      | Federated MySQL storage engine                             | NULL         | NULL | NULL       |
+--------------------+---------+------------------------------------------------------------+--------------+------+------------+

解讀:DEFAULT 標示預設引擎。生產核心表**必須使用 InnoDB** (事務、行鎖、外鍵、崩潰恢復)。FEDERATED 預設未啟用。

DESC / SHOW COLUMNS 輸出解讀

+------------+------------------+------+-----+-------------------+-----------------------------+
| Field      | Type             | Null | Key | Default           | Extra                       |
+------------+------------------+------+-----+-------------------+-----------------------------+
| id         | bigint unsigned  | NO   | PRI | NULL              | auto_increment              |
| username   | varchar(32)      | NO   | UNI |                   |                             |
| email      | varchar(128)     | NO   | MUL |                   |                             |
| created_at | timestamp        | NO   |     | CURRENT_TIMESTAMP | DEFAULT_GENERATED           |
| updated_at | timestamp        | NO   |     | CURRENT_TIMESTAMP | DEFAULT_GENERATED on update |
+------------+------------------+------+-----+-------------------+-----------------------------+

Key 欄位:PRI=主鍵、UNI=唯一索引、MUL=非唯一索引 (允許重複值)。Extra 顯示 auto_increment、on update CURRENT_TIMESTAMP 等特性。

五、圖示說明

連線成功歡迎界面:

MySQL 連線歡迎界面

SHOW ENGINES 輸出:

SHOW ENGINES 輸出

DESC、SHOW DATABASES、SHOW TABLES 綜合輸出:

基礎查詢輸出

六、進階:資訊_schema 系統表深度查詢

命令列工具本質查詢 information_schema,直接查系統表更靈活:

-- 查看所有表大小、行數、引擎 (按大小排序)
SELECT TABLE_SCHEMA, TABLE_NAME, ENGINE, TABLE_ROWS, 
       ROUND((DATA_LENGTH+INDEX_LENGTH)/1024/1024, 2) AS Size_MB
FROM information_schema.TABLES
WHERE TABLE_SCHEMA NOT IN ('mysql','information_schema','performance_schema','sys')
ORDER BY Size_MB DESC;

-- 查找無主鍵表 (隱患排查)
SELECT TABLE_SCHEMA, TABLE_NAME 
FROM information_schema.TABLES 
WHERE TABLE_SCHEMA='my_db' AND CREATE_OPTIONS NOT LIKE '%auto_increment%';

七、退出與良好習慣

mysql> QUIT;  -- 或 EXIT、\q
# 良好習慣:作業完成立即退出,釋放連線資源,避免佔用 max_connections

總結

命令列連線參數安全規範、核心資訊查看命令 (版本、引擎、用戶、權限、結構)、輸出解讀技巧、information_schema 進階查詢,構成 MySQL command-line 基礎功力。建議建立個人 ~/.my.cnf 並熟練使用 SHOW CREATE TABLE、SHOW ENGINES、SHOW GRANTS 三大神器。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved