定制mysql_定制MySQL数据目录

MySQL的数据存在哪里

具体位置可以在配置文件中指定datadir:

# /etc/mysql/mysql.conf/mysqld.cnf

[mysqld]

pid-file = /var/run/mysqld/mysqld.pid

socket = /var/run/mysqld/mysqld.sock

datadir = /var/lib/mysqldata

log-error = /var/log/mysql/error.log

# By default we only accept connections from localhost

# bind-address = 127.0.0.1

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

数据目录无法访问

尽管已经修改好了datadir,但是此时重启mysql,会提示无法访问这个新的datadir。原因是apparmor限制了mysql能够访问的目录。

运行aa-status,可以看到相应结果:

[root@boxy ~]# aa-status

apparmor module is loaded.

18 profiles are loaded.

18 profiles are in enforce mode.

/sbin/dhclient

...

/usr/sbin/cupsd

/usr/sbin/mysqld

/usr/sbin/tcpdump

0 profiles are in complain mode.

2 processes have profiles defined.

...

在上面的结果中, mysqld处于enfore mode,也就是说mysqld现在受apparmor的控制。

而mysqld具体能访问什么目录,则是在

/etc/apparmor.d/usr.sbin.mysqld

文件中指定的。

# Allow data dir access

/var/lib/mysql/ r,

/var/lib/mysql/** rwk,

这是mysql缺省的数据目录。

允许访问新的数据目录

在usr.sbin.mysqld文件中,可以使用如下指令,引用用户配置文件,

include

然后用户就可以在

/etc/apparmor.d/local/usr.sbin.mysqld

文件中指定新的、允许访问的数据目录。

# Allow data dir access

/path/to/new/datadir/ r,

/path/to/new/datadir/** rwk,

##

重新载入apparmor配置文件,重新启动mysql即可访问新的数据目录。

[root@boxy ~]# service apparmor reload

* Reloading AppArmor profiles

Skipping profile in /etc/apparmor.d/disable: usr.bin.firefox

Skipping profile in /etc/apparmor.d/disable: usr.sbin.rsyslogd

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值