萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

Ubuntu 下 MySQL 安全配置實戰:root密碼、業務賬號、遠程訪問、bind-address全流程

環境

Ubuntu 系統,MySQL 默認綁定 127.0.0.1 僅允許本地訪問,root 無密碼。

全流程配置

1. 以普通用戶免密登入並設置 root 密碼


$ mysql -u root
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'StrongPass123!';
FLUSH PRIVILEGES;

建議: 密碼 ≥12 位,大小寫+數字+特殊字符。

2. 創建業務專用賬號與數據庫 (最小權限)


mysql> CREATE DATABASE xoops;
mysql> GRANT ALL PRIVILEGES ON `xoops`.* TO 'xoops_root'@'localhost' IDENTIFIED BY 'AnotherStrongPass!';
FLUSH PRIVILEGES;

業務代碼使用 xoops_root 連接,權限僅限 xoops 庫,root 僅作緊急管理。

3. 啟用遠程訪問 (兩步必做)

  1. 授權遠程賬號:
    GRANT ALL PRIVILEGES ON `xoops`.* TO 'xoops_root'@'%' IDENTIFIED BY 'AnotherStrongPass!';
  2. 修改綁定地址:
    編輯 /etc/mysql/my.cnf,找到 bind-address = 127.0.0.1,註釋或改為 0.0.0.0:
    # bind-address = 127.0.0.1
    或 bind-address = 0.0.0.0
  3. 重啟服務:sudo service mysql restart

4. 防火牆放行 (ufw 示例)


sudo ufw allow from 192.168.1.0/24 to any port 3306
# 僅允許應用服務器網段訪問

安全加固清單

  • 運行 mysql_secure_installation 交互式完成:移除匿名用戶、禁止 root 遠程登入、刪除 test 庫、刷新權限。
  • 配置文件設置 skip-name-resolve 禁用 DNS 解析,授權表僅用 IP。
  • 啟用 SSL:生成證書,設置 require_secure_transport=ON。
  • 定期審計 mysql.user、mysql.db 權限表。
copyright © 萬盛學電腦網 all rights reserved