rm: cannot remove '/var/lock/subsys/mysql': Permission denied


接手一台MySQL  5.6.40-log MySQL Community Server數據庫服務器 ,關閉MySQL服務時遇到下面錯誤,MySQL的錯誤日志中沒有出現這個信息,另外,重啟MySQL服務時沒有問題。只是在關閉MySQL服務時遇到這個錯誤信息,看着挺別扭的。當然這個是在非root用戶下啟動/關閉,如果在root用戶下啟動/關閉則沒有這個錯誤信息:

 

$ service mysqld stop
Shutting down MySQL.... SUCCESS!
rm: cannot remove '/var/lock/subsys/mysql': Permission denied
 
$ service mysqld start
Starting MySQL. SUCCESS!

 

找到MySQL服務的配置文件 /etc/rc.d/init.d/mysqld,分析定位到stop部分代碼,如下所示:

 

# Lock directory for RedHat / SuSE.
lockdir='/var/lock/subsys'
lock_file_path="$lockdir/mysql"
 
..................................
 
  'stop')
    # Stop daemon. We use a signal here to avoid having to know the
    # root password.
 
    if test -s "$mysqld_pid_file_path"
    then
      mysqld_pid=`cat "$mysqld_pid_file_path"`
 
      if (kill -0 $mysqld_pid 2>/dev/null)
      then
        echo $echo_n "Shutting down MySQL"
        kill $mysqld_pid
        # mysqld should remove the pid file when it exits, so wait for it.
        wait_for_pid removed "$mysqld_pid" "$mysqld_pid_file_path"; return_value=$?
      else
        log_failure_msg "MySQL server process #$mysqld_pid is not running!"
        rm "$mysqld_pid_file_path"
      fi
 
      # Delete lock for RedHat / SuSE
      if test -f "$lock_file_path"
      then
        rm -f "$lock_file_path"
      fi
      exit $return_value
    else
      log_failure_msg "MySQL server PID file could not be found!"
    fi
    ;;

檢查驗證發現當前用戶(非root用戶),沒有刪除/var/lock/subsys/mysql文件的權限。

 

$ ls -lrt /var/lock
lrwxrwxrwx. 1 root root 11 Jun  5  2020 /var/lock -> ../run/lock
$ ls -lrt /var/lock/subsys/
total 0
-rw-r--r-- 1 root  root  0 Oct 15  2020 network
-rw-r--r-- 1 root  root  0 Oct 15  2020 local
-rw-r--r-- 1 root  root  0 Oct 15  2020 mysql
 
$ rm /var/lock/subsys/mysql
rm: cannot remove ‘/var/lock/subsys/mysql’: Permission denied

 

 

解決辦法,修改/etc/rc.d/init.d/mysqld中lockdir變量的值,指定到用戶mysql有權限的目錄。問題解決。另外一種解決方式是通過授予用戶訪問文件的權限。但是感覺沒有第一種方式好。因為一些原因,現在DBA使用JumpServer登錄系統時,只允許非root賬號訪問。

 

lockdir='/data/mysqldata'


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM