欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

【mysql案例】MySQL无法更新PID文件的解决方法

程序员文章站 2022-04-29 22:03:32
...

MySQL无法更新PID文件的解决方法 当我们在linux系统上安装好mysql_server和mysql_client,在启动的时候会提示无法更新PID文件: # service mysql start StartingMySQL.The server quit without updating PID file (/home/mysql/localhost.localdomain.pid).

MySQL无法更新PID文件的解决方法

当我们在linux系统上安装好mysql_server和mysql_client,在启动的时候会提示无法更新PID文件:

# service mysql start

StartingMySQL.The server quit without updating PID file (/home/mysql/localhost.localdomain.pid).

大家想到的第一个方法就是关闭selinux,然而关闭了selinux却会带来许多安全隐患。

我们先来了解下什么是selinux:

SELinux全称是SecurityEnhanced Linux,由美国国家安全部(NationalSecurity Agency)领导开发的GPL项目,它拥有一个灵活而强制性的访问控制结构,旨在提高Linux系统的安全性,提供强健的安全保证,可防御未知攻击,据称相当于B1级的军事安全性能。比MSNT所谓的C2等高得多。

应用SELinux后,可以减轻恶意攻击或恶意软件带来的灾难,并提供对机密性和完整性有很高要求的信息很高的安全保障。 SELinux vs Linux 普通Linux安全和传统Unix系统一样,基于自主存取控制方法,即DAC,只要符合规定的权限,如规定的所有者和文件属性等,就可存取资源。在传统的安全机制下,一些通过setuid/setgid的程序就产生了严重安全隐患,甚至一些错误的配置就可引发巨大的漏洞,被轻易攻击。

而SELinux则基于强制存取控制方法,即MAC,透过强制性的安全策略,应用程序或用户必须同时符合DAC及对应SELinux的MAC才能进行正常操作,否则都将遭到拒绝或失败,而这些问题将不会影响其他正常运作的程序和应用,并保持它们的安全系统结构。

看到这里我们知道selinux是基于强制存取访问控制方法的,可以为系统提供更加安全的环境,相当于linux系统上的软防火墙,如果把它关掉必然会留下许多安全隐患。

那么怎么在不关闭selinux的情况下,正常启动mysql服务呢。我们已经知道,selinux是防火墙,那么就可以给他设置相关策略。

可以使用getsebool –a|more命令查看当前系统的selinux策略设置,其中mysqld服务的状态:mysqld_disable_trans --> off ,即mysqld服务被禁止了。然后使用

setsebool -P mysqld_disable_trans=1允许mysqld服务启动并将更改写入配置文件,设置立即生效。查看mysqld的策略变为:mysqld_disable_trans --> on

此时,就可以在不关闭selinux的情况下启动mysqld服务了。

解决思路:安装完mysql后,查看哪些目录下写入了mysql信息:

[root@localhostpolicy]# find / -name mysql*

/selinux/booleans/mysqld_disable_trans

发现selinux下有mysqld信息,而之前只有关闭selinux或者设置为permissive模式,才能启动mysql服务……。

参考:http://www.linux.gov.cn/netweb/selinux.htm SELinux简介