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

MySQL 常用命令大全:管理、查詢、備份與權限控制完整手冊

     編輯:MySQL 綜合教學

MySQL 客戶端實用技巧

1. 垂直顯示結果(\G)

mysql> SELECT * FROM db_archivelog\G
*************************** 1. row ***************************
       id: 1
  check_day: 2008-06-26
    db_name: TBDB1
   arc_size: 137
   arc_num: 166
 per_second: 1.6
   avg_time: 8.7

適用於欄位較多、單行較寬的查詢結果。

2. 分頁顯示

mysql> PAGER less
mysql> SELECT * FROM large_table;
# 使用方向鍵翻頁,q 退出
mysql> NOPAGER  -- 恢復預設

3. 結果輸出到檔案

mysql> TEE output.txt
mysql> SELECT * FROM table;
mysql> NOTEE  -- 關閉

4. 執行系統命令

mysql> SYSTEM ls -la
mysql> ! pwd

5. 執行 SQL 檔案

mysql> SOURCE /path/to/script.sql
mysql> . /path/to/script.sql

連線與認證管理

連線語法

# 本地連線
mysql -u root -p

# 遠端連線
mysql -h 10.0.0.1 -u root -p123

# 指定資料庫
mysql -u root -p mydb

修改密碼

# 首次設定 root 密碼
mysqladmin -u root password 'newpass'

# 變更密碼
mysqladmin -u root -p'oldpass' password 'newpass'

使用者與權限管理

建立使用者並授權

-- 僅本地存取,特定資料庫權限(推薦)
GRANT SELECT, INSERT, UPDATE, DELETE 
ON mydb.* 
TO 'app_user'@'localhost' 
IDENTIFIED BY 'strong_password';

-- 所有資料庫、所有主機(高風險,避免使用)
GRANT ALL PRIVILEGES 
ON *.* 
TO 'admin'@'%' 
IDENTIFIED BY 'password' 
WITH GRANT OPTION;

權限層級說明

權限範圍說明
SELECT表/欄查詢資料
INSERT表新增資料
UPDATE表/欄修改資料
DELETE表刪除資料
CREATE資料庫/表建立物件
DROP資料庫/表刪除物件
INDEX表建立/刪除索引
ALTER表修改表結構
GRANT OPTION全域授權給他人
FILE全域讀寫伺服器檔案
PROCESS全域檢視/終止執行緒
RELOAD全域重載權限、刷新日誌
SHUTDOWN全域關閉 MySQL 服務
SUPER全域終止任何查詢、修改全域變數

撤銷權限

REVOKE INSERT, UPDATE ON mydb.* FROM 'user'@'localhost';
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'user'@'%';

資料庫與表操作

顯示資訊

SHOW DATABASES;
SHOW TABLES;
DESCRIBE table_name;
SHOW CREATE TABLE table_name;
SHOW INDEX FROM table_name;

建立/刪除

CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE mydb;
CREATE TABLE users (
    id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    email VARCHAR(100) UNIQUE
) ENGINE=InnoDB;

DROP TABLE users;
DROP DATABASE mydb;

資料操作

INSERT INTO users (name, email) VALUES ('John', 'john@example.com');
UPDATE users SET name = 'Jane' WHERE id = 1;
DELETE FROM users WHERE id = 1;
TRUNCATE TABLE users;  -- 快速清空表

資料匯入匯出

文字檔匯入

LOAD DATA LOCAL INFILE '/path/data.txt' 
INTO TABLE users 
FIELDS TERMINATED BY ',' 
LINES TERMINATED BY '\n';

SQL 檔案匯入

mysql -u root -p mydb < backup.sql

備份

# 完整備份
mysqldump -u root -p --all-databases > full_backup.sql

# 單一資料庫
mysqldump -u root -p mydb > mydb_backup.sql

# 僅結構
mysqldump -u root -p -d mydb > structure_only.sql

安全性強化清單

  • ✅ 刪除匿名帳號:DELETE FROM mysql.user WHERE User='';
  • ✅ 設定 root 強密碼
  • ✅ 限制 root 只能本地登入:UPDATE mysql.user SET Host='localhost' WHERE User='root';
  • ✅ 移除 test 資料庫:DROP DATABASE test;
  • ✅ 啟用 SSL 連線
  • ✅ 定期審核權限:SHOW GRANTS FOR 'user'@'host';
  • ✅ 啟用審計日誌(Enterprise 版或插件)

服務管理

# Linux (systemd)
systemctl start mysqld
systemctl stop mysqld
systemctl restart mysqld
systemctl status mysqld

# Windows
net start mysql
net stop mysql
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved