修改mysql数据目录(datadir)
今天在项目上发现一个问题,mysql是使用rpm默认安装的,数据文件在/var/lib/mysql目录下,如果数据库文件一直增大会导致紫磁盘空间不够,所以希望将数据目录迁移到/u01目录下。
- 首先停掉mysql服务:
service mysqld stop- 在/u01目录下创建./mysql/databse目录
mkdir mysql/databse- 为创建的目录指定权限
chmod -R 777 /u01/mysql/databse/*
chown -R mysql.mysql /u01/mysql/databse/*- 将原来默认目录的数据目录的所有文件拷贝至新目录
cp -r /var/lib/mysql/* /u01/mysql/database/- 修改配置文件
vi /etc/my.cnf#datadir=/var/lib/mysql datadir=/u01/mysql/database #socket=/var/lib/mysql/mysql.sock socket=/u01/mysql/database/mysql.sock
- 启动mysql
service mysqld start- 但是在启动的时候会报一个错
[ERROR] InnoDB: The innodb_system data file ‘ibdata1’ must be writable
这个错应该是说对ibdata1文件没有写权限,但是前面已经对新数据目录授权了,所以这里应该不是这里的问题。百度的解决方法基本都是修改权限。。。
后来经过FQ查资料在一个ubuntu论坛里面发现,他们也有类似的问题
国外老哥一样的问题
但是这里面说的AppArmor这个安全组件在centOS里没有找到,所以联想到centOS会不会有类似的安全控制器,后来发现AppArmor这个玩意就是简化版的SELinux,然后我突然意识到我应该怎么做。
大家有兴趣也可以了解一下这两个东东
apparmor和selinux的恩怨情仇
setenforce 0(1为强制模式enforcing,0为宽容模式permissive)
其实还有一个模式disabled,但是只能在配置文件中改
编辑/etc/selinux/config,设置SELINUX=permissive(宽容模式)
然后再次启动mysql,万事大吉~~~~