首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

MySQL UDF sys_exec 執行 Shell 腳本無效?檢查 SELinux 策略

     編輯:程式設計綜合問答

現象

安裝 lib_mysqludf_sys,調用 SELECT sys_exec('/root/test/testExcute.sh') 返回 32256,但腳本實際未執行。

根因

SELinux 策略禁止 MySQL 進程執行外部程式/腳本。返回值 32256 = 126 * 256,對應 Shell 錯誤碼 126(命令不可執行/權限不足)。

解決方案

  1. 臨時關閉 SELinux 驗證:setenforce 0,重試若成功則確認為 SELinux 問題。
  2. 永久方案:編輯 /etc/selinux/config 設 SELINUX=permissive 或 disabled,重啟系統。
  3. 或配置 SELinux 策略模組允許 mysqld_t 執行特定路徑腳本(較複雜,生產環境建議)。

注意

關閉 SELinux 會降低系統安全性,生產環境請優先配置精確策略。

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