• MySQL启动故障解决


    今天在启动mysql的时候,使用/etc/init.d/mysqld start 报错

    Starting MySQL (Percona Server).mkdir: cannot create directory `/var/lib/mysql': File exists
    chown: cannot access `/var/lib/mysql': Permission denied
    chmod: cannot access `/var/lib/mysql': Permission denied
    rm: cannot remove `/var/lib/mysql/mysql.sock': Permission denied
     ERROR! The server quit without updating PID file (/var/run/mysqld/mysqld.pid).

    一看这种是权限问题,但查看发现目录权限已经是对的

    查看启动脚本,是启动的时候调用/usr/bin/mysqld_safe启动进程,两个都是shell脚本,改用调试模式执行

    发现在目录判断的时候会失效

     

    实际上这个目录是存在的,查看启动失败的日志

    也是权限问题,但目录权限正确,所以可能的问题就出在启动mysql_safe脚本的时候导致某些问题的出现

    换用以下方式启动

    [shell#] sh /etc/init.d/mysqld start 

    发现启动成功,这种情况相当于直接以root用户启动,

    查看日志/var/log/audit/audit.log 发现发现时selinux限制了mysql启动时对数据目录的chown 

    type=AVC msg=audit(1492495884.134:8627): avc:  denied  { getattr } for  pid=11695 comm="chown" path="/var/lib/mysql" dev=dm-0 ino=392235 scontext=unconfined_u:system_r:mysqld_safe_t:s0 tcont
    ext=unconfined_u:object_r:var_lib_t:s0 tclass=lnk_file

    因为这里我们用不上selinux直接关掉,临时关掉的方式如下:

    [shell#] setenforce 0

    永久关掉需要修改 /etc/selinux/config 再重启机器就好

    SELINUX=disabled

    也可以打开相关目录的权限

    [shell#]chcon -R -t mysqld_db_t  dir

    再启动便不会报错

    附:

    关于selinux与mysql相关的一些问题可查看 https://blogs.oracle.com/jsmyth/entry/selinux_and_mysql 

  • 相关阅读:
    SQL----Scalar 函数
    SQL----Group By and Having
    SQL--合计函数(Aggregate functions):avg,count,first,last,max,min,sum
    SQL 函数
    Auto-increment 自动增长
    sql--ALTER
    sql--Drop语句
    sql--index 索引
    sql--select into,create database,create table,Constraints
    sql--union
  • 原文地址:https://www.cnblogs.com/hoods/p/6730405.html
Copyright © 2020-2023  润新知