首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 常用管理命令大全:從建庫授權到權限體系詳解

     編輯:MySQL 資料庫相關知識

基礎操作流


SHOW DATABASES;
CREATE DATABASE `mydb` DEFAULT CHARSET utf8mb4;
USE `mydb`;
SHOW TABLES;
CREATE TABLE `t` (`id` INT PRIMARY KEY AUTO_INCREMENT, `name` VARCHAR(20));
DESC `t`;
INSERT INTO `t` VALUES (NULL, 'test');
SELECT * FROM `t`;

使用者與權限核心

建立使用者並授權(推薦 GRANT 隱式建立)


-- 僅讀
GRANT SELECT ON `mydb`.* TO 'readonly'@'%' IDENTIFIED BY 'pass';
-- 讀寫
GRANT SELECT, INSERT, UPDATE, DELETE ON `mydb`.* TO 'rw'@'10.0.%' IDENTIFIED BY 'pass';
-- 管理權限
GRANT ALL PRIVILEGES ON `mydb`.* TO 'admin'@'localhost' IDENTIFIED BY 'pass' WITH GRANT OPTION;
FLUSH PRIVILEGES;

權限層級對照

層級權限關鍵字說明
全域FILE, PROCESS, RELOAD, SHUTDOWN, SUPER影響整個伺服器
庫級CREATE, DROP, INDEX, ALTER, REFERENCES特定資料庫
表級SELECT, INSERT, UPDATE, DELETE, TRIGGER特定資料表
欄位級SELECT (col), UPDATE (col), REFERENCES (col)特定欄位

特殊權限

  • ALL:等同 root 所有權限(含 GRANT OPTION)。
  • USAGE:僅允許連線,無任何操作權限。

回收權限


REVOKE INSERT, UPDATE ON `mydb`.* FROM 'rw'@'10.0.%';
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'old'@'%';
DROP USER 'old'@'%';
FLUSH PRIVILEGES;

安全加固清單

  1. 刪除匿名帳號:DELETE FROM mysql.user WHERE User='';
  2. Root 設強密碼:ALTER USER 'root'@'localhost' IDENTIFIED BY 'strong';
  3. 限制 Root 來源:UPDATE mysql.user SET Host='127.0.0.1' WHERE User='root';
  4. 移除 test 資料庫:DROP DATABASE test; DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%';
  5. 啟用 validate_password 強制複雜度。

服務管理


# Windows
net start mysql
net stop mysql

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

常用資訊查詢


SHOW PROCESSLIST;              -- 當前連線
SHOW ENGINE INNODB STATUS;     -- InnoDB 內部狀態
SHOW GLOBAL STATUS LIKE 'Uptime';
SHOW VARIABLES LIKE 'max_connections';

將上述命令整理為個人 Cheat Sheet,日常運維事半功倍。

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