selinux mysql_SELinux之于MySQL

SELinux之于MySQL博客分类: 数据库========================================================我之前写了一篇《AppArmor and MySQL》的文章,讲了如何在启用AppArmor的情况下改变MySQL的默认文件路径。Ubuntu和SUSE配备了AppArmor,而其他一些发布版本,如Oracle Linux则没有,以及其他一些...
摘要由CSDN通过智能技术生成

SELinux之于MySQL

博客分类: 数据库

========================================================

我之前写了一篇《AppArmor and MySQL》的文章,讲了如何在启用AppArmor的情况下改变MySQL的默认文件路径。Ubuntu和SUSE配备了AppArmor,而其他一些发布版本,如Oracle Linux则没有,以及其他一些相关的版本如Red Hat、CentOS及Fedora都没有。相对的,他们使用另一个托管访问控制(译注:mandatory access control)系统SELinux。

SELinux(安全强化,如果你感兴趣)“是linux中支持安全访问控制策略机制的一种特性”--维基百科。更简单的说,它能阻止比如程序之类的访问他们不应该访问的文件和网络端口等。所谓“不应该访问”这里指的是“尚未被配置为可以访问”。比如说,MySQL允许访问它的数据目录/var/lib/mysql,并且可以读取/etc/my.cnf。它可以打开3306端口,但是SELinux阻止它向/home/Jeremy或者/sbin或者其他任何尚未配置成为MySQL位置的路径进行写操作。

简而言之,如果你想更改MySQL的默认端口为一个非标准端口,或者试图备份或者设置数据文件或日志文件到非常用路径,你就会在MySQL错误日志里面收到很多奇怪的禁止访问类型的错误。另外,你同样会在/var/log/audit/audit.log(如果auditd正在运行,否则在/var/log/messages或者/var/log/syslog里面,这取决于你的系统配置)里收到信息。

会得到什么错误呢?

我这边采用了MySQL5.6及Oracle Linux 6.3作为样例环境,同时启用了SELinux。当我把datadir这个变量设置为/datadir时(此目录复制了MySQL原数据目录的所有内容,并且设置了正确的权限),就无法启动服务了。看下面的错误。

MySQL错误日志中:

130321 11:50:51 mysqld_safe Starting mysqld daemon with databases from /datadir

...

2013-03-21 11:50:52 2119 [Warni

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值