zoukankan      html  css  js  c++  java
  • 解决Linux-Centos7启动Mysql服务失败丢失mysql.sock问题

    在新安装mysql后进行启动发现报错

    mysql启动服务命令

    systemctl start mysqld@3306

    Starting mysqld (via systemctl):  Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld3306.service" and "journalctl -xe" for details.

    按照错误提示信息进行排查

    systemctl status mysqld3306.service

    journalctl -xe


    尝试连接mysql报错查看sock文件夹发现sock文件丢失

    [root@cdh03 mysqldata3309]# mysql -uroot -S /data/mysqldata3309/sock/mysql.sock -p"Ygadb(vw<6ae"

    mysql: [Warning] Using a password on the command line interface can be insecure.
    ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/data/mysqldata3309/sock/mysql.sock' (2)

    使用命令journalctl -xe查看报错具体原因,发现红色找字体的日志:SELinux is preventing mysqld from getattr access on the file /var/lib/mysql/ibdata1. For complete SELinux messages run: sealert -l
    发现是selinux限制导致mysql服务启动失败

    解决办法

    1. 查看SELinux状态

    1.1 getenforce

    getenforce 命令是单词get(获取)和enforce(执行)连写,可查看selinux状态,与setenforce命令相反。
    setenforce 命令则是单词set(设置)和enforce(执行)连写,用于设置selinux防火墙状态,如: setenforce 0用于关闭selinux防火墙,但重启后失效

    [root@cdh03 ~]# getenforce
    Enforcing

    1.2 /usr/sbin/sestatus

    Current mode表示当前selinux防火墙的安全策略

    [root@cdh03 ~]# /usr/sbin/sestatus
    SELinux status: enabled
    SELinuxfs mount: /sys/fs/selinux
    SELinux root directory: /etc/selinux
    Loaded policy name: targeted
    Current mode: enforcing
    Mode from config file: enforcing
    Policy MLS status: enabled
    Policy deny_unknown status: allowed
    Max kernel policy version: 28
    SELinux status:selinux防火墙的状态,enabled表示启用selinux防火墙
    Current mode: selinux防火墙当前的安全策略,enforcing 表示强

    2. 关闭SELinux

    2.1 临时关闭

    setenforce 0 :用于关闭selinux防火墙,但重启后失效。

    [root@cdh03 ~]# setenforce 0
    [root@cdh03 ~]# /usr/sbin/sestatus
    SELinux status: enabled
    SELinuxfs mount: /sys/fs/selinux
    SELinux root directory: /etc/selinux
    Loaded policy name: targeted
    Current mode: permissive
    Mode from config file: enforcing
    Policy MLS status: enabled
    Policy deny_unknown status: allowed
    Max kernel policy version: 28

    2.1 永久关闭

    修改selinux的配置文件,重启后生效。

    打开 selinux 配置文件
    [root@cdh03 ~]# vim /etc/selinux/config
    修改 selinux 配置文件
    将SELINUX=enforcing改为SELINUX=disabled,保存后退出

    This file controls the state of SELinux on the system.
    SELINUX= can take one of these three values:
    enforcing - SELinux security policy is enforced.
    permissive - SELinux prints warnings instead of enforcing.
    disabled - No SELinux policy is loaded.
    SELINUX=enforcing
    SELINUXTYPE= can take one of three two values:
    targeted - Targeted processes are protected,
    minimum - Modification of targeted policy. Only selected processes are protected.
    mls - Multi Level Security protection.
    SELINUXTYPE=targeted
    此时获取当前selinux防火墙的安全策略仍为Enforcing,配置文件并未生效。

    [root@cdh03 ~]# getenforce
    Enforcing
    重启
    [root@cdh03 ~]# reboot
    验证
    [root@cdh03 ~]# /usr/sbin/sestatus
    SELinux status: disabled

    [root@cdh03 ~]# getenforce
    Disabled

    然后重启MYSQL服务,连接正常

  • 相关阅读:
    一些不能订阅的前端学习资源
    酷站收集
    网页设计学习资源
    flash 内置类的位置
    打造自己的CodeSnippet (转)
    (转)打造自己的CodeSnippet
    WebApplication编程模型与WebSite编程模型
    (转).net面试问答(大汇总)
    ASP.NET 防盗链源码 (转)
    正则表达式基础知识
  • 原文地址:https://www.cnblogs.com/whiteY/p/13286214.html
Copyright © 2011-2022 走看看