zoukankan      html  css  js  c++  java
  • 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'
    扫描上面二维码关注我
    如果你真心觉得文章写得不错,而且对你有所帮助,那就不妨帮忙“推荐"一下,您的“推荐”和”打赏“将是我最大的写作动力!
    本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接.
  • 相关阅读:
    jQuery
    我的微信公众号被封了
    安装pillow
    win 10 无线标志都不出现
    msfvenom 摄像头
    Python list的定义和删改
    Python md5解密
    Python 同ip网站查询(制作网站接口)
    python 带参数运行
    Python 查看本机WiFi密码
  • 原文地址:https://www.cnblogs.com/kerrycode/p/15484418.html
Copyright © 2011-2022 走看看