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

MySQL mysqld安全相關啟動選項完整參考手冊

     編輯:MySQL 資料庫相關知識

安全相關啟動選項總覽

選項功能說明預設/建議
--allow-suspicious-udfs允許載入僅有主函數(xxx)的UDF。關閉時需至少有輔助符號關閉(預設)
--local-infile[={0|1}]控制LOAD DATA LOCAL功能。0=禁用1(二進制發布預設啟用)
--old-passwords生成pre-4.1短密碼雜湊,相容舊版客戶端視相容需求啟用
--safe-show-database(已廢棄) 限制SHOW DATABASES顯示有權限的庫。5.1+用SHOW DATABASES權限控制廢棄
--safe-user-create用戶需有mysql.user表INSERT權限才能用GRANT建用戶建議啟用
--secure-auth拒絕pre-4.1舊密碼雜湊的帳號認證建議啟用
--skip-grant-tables完全跳過權限系統,所有人擁有所有資料庫完全存取權!極度危險,僅緊急救援用
--skip-name-resolve不解析主機名,授權表Host欄只能用IP或localhost建議啟用(提升連線速度、避免DNS故障)
--skip-networking禁用TCP/IP連線,僅允許Unix Socket/Windows命名管道/共享記憶體單機部署建議啟用
--skip-show-database僅允許有SHOW DATABASES權限的用戶執行該指令建議啟用

關鍵選項深度解析

--safe-user-create 實務配置

啟用後,若要讓用戶有建用戶權限,需精確授予:

GRANT INSERT(user) ON mysql.user TO 'user_name'@'host_name';

確保用戶無法直接修改權限欄,必須透過GRANT語句授權。

--skip-grant-tables 緊急救援流程

  1. 啟用選項重啟mysqld
  2. 無密碼連入:mysql -u root
  3. 更新密碼:UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root'; FLUSH PRIVILEGES;
  4. 移除選項正常重啟

網路層防護組合

[mysqld]
skip-networking          # 僅本機Socket連線
skip-name-resolve        # 禁用DNS反解
bind-address=127.0.0.1   # 僅綁定回環介面(若需網路)
安全原則:最小權限、最小暴露面。生產環境建議預設啟用--skip-name-resolve、--secure-auth、--safe-user-create、--skip-show-database,視架構決定--skip-networking。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved