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

Ubuntu Linux MySQL 服務器配置實戰:Root密碼設定、資料庫建立、遠端存取開放、權限最小化

     編輯:MySQL 資料庫相關知識

Ubuntu MySQL 預設安全狀態

  • 僅允許本地回環連線 (bind-address = 127.0.0.1)
  • Root 無密碼 (極度危險)
  • 匿名使用者存在
  • 測試資料庫 test 可被任意存取

五步驟標準安全配置

1. 設定 Root 密碼 (首要任務)


# 以一般使用者身分 (sudo 權限) 操作
mysql -u root

# 在 MySQL 客戶端
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'StrongPass123!';
FLUSH PRIVILEGES;

⚠️ 密碼必須:≥12字元、大小寫數字符號混合、非字典詞。

2. 建立業務專用資料庫與帳號 (最小權限原則)


# 建立資料庫
CREATE DATABASE xoops CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

# 建立專用管理帳號 (僅本地、僅此資料庫全權限)
GRANT ALL PRIVILEGES ON xoops.* TO 'xoops_admin'@'localhost' IDENTIFIED BY 'XoopsAdminPass456!';

# 後續管理使用 xoops_admin,不再使用 root

3. 開放遠端存取 (如確有需要)


# 步驟 A:授權遠端存取
GRANT ALL PRIVILEGES ON xoops.* TO 'xoops_admin'@'%' IDENTIFIED BY 'XoopsAdminPass456!';

# 步驟 B:修改綁定位址
sudo vim /etc/mysql/my.cnf
# 找到 [mysqld] 區段
# bind-address = 127.0.0.1  → 註解或改為 0.0.0.0
# bind-address = 0.0.0.0

# 步驟 C:重啟服務
sudo systemctl restart mysql

# 步驟 D:防火牆放行 (僅允許應用伺服器 IP)
sudo ufw allow from 192.168.1.0/24 to any port 3306

4. 執行安全強化腳本


sudo mysql_secure_installation
# 互動式執行:
# - 設定 root 密碼 (已完成可跳過)
# - 移除匿名使用者 → Y
# - 禁止 root 遠端登入 → Y
# - 移除 test 資料庫 → Y
# - 重新載入權限表 → Y

5. 驗證配置生效


# 本地 root 登入
mysql -u root -p'StrongPass123!'

# 遠端業務帳號登入 (從應用伺服器)
mysql -h db_server_ip -u xoops_admin -p'XoopsAdminPass456!' xoops

# 檢查監聽位址
ss -tlnp | grep 3306
# 0.0.0.0:3306 → 遠端開放
# 127.0.0.1:3306 → 僅本地

關鍵安全原則總結

原則實作
最小權限業務帳號僅授予特定庫 SELECT/INSERT/UPDATE/DELETE
本地優先管理帳號限制 @localhost,遠端帳號單獨建立
強密碼所有帳號強制複雜密碼,定期輪換
網路隔離防火牆/安全組僅開放應用伺服器 IP 存取 3306
審計日誌啟用一般查詢日誌/慢查詢日誌,定期審計
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved