最近在安装CDH,需要安装数据库,选择了mysql。mysql使用的是rpm安装方式,默认存储路径为/var/lib/mysql,如果等后期数据量大了之后可能会引起系统盘撑爆的情况,所以提前做好更换数据目录的工作。这个方法折磨了我两三天,自己试了无数次才解决!
环境:Centos 7.3 Mysql5.6,理论上这个方法适合所有系统和mysql版本
1、关闭SELinux或者AppArmor
Centos:SELinux
Ubuntu:AppArmor
这个东西是系统的一种保护机制,需要关闭,否则更改mysql配置会出错,下面我以centos举例
检测selinux状态
[root@test ~]# getenforce
Enforcing
输出为 Enforcing
表示开启,Disabled
表示关闭,Permissive
表示警告,如果是非关闭状态就要进行修改
修改为关闭状态:
# 在控制机器上修改内容
vi /etc/selinux/config
SELINUX=disabled
重启后生效,再查看状态 getenforce
显示Disabled
2、更换datadir
先查看mysql状态(后面所有命令根据mysql版本和系统版本不同而有所差异)
[root@test ~]# service mysql status
SUCCESS! MySQL running (1134)
注意:
1、如果mysql处于开启状态就必须要先停止
2、如果mysql刚安装就必须要先启动一次再关闭,因为启动会有一些东西初始化,否则待会启动会各种报错
3、如果mysql是关闭的就可以不用管
关闭mysql
[root@test ~]# service mysql stop
Shutting down MySQL.. SUCCESS!
创建需要更换的data目录(最好是非系统盘)
mkdir -p /opt/mysql/data
查看原来的datadir位置,一般是在**/usr/my.cnf或者/etc/my.cnf**,如果实在找不到就全盘找 find / -name "my.cnf"
如果my.cnf中的datadir为空的话,那就表示数据目录在默认目录为 /var/lib/mysql
将原来的数据拷贝到新的目录并赋予mysql用户权限
(重要,负责启动会报权限不够)
cp -r /var/lib/mysql/* /opt/mysql/data/
chown -R mysql:mysql /opt/mysql
修改 my.cnf
[mysqld]
datadir=/opt/mysql/data
启动mysql
[root@test opt]# service mysql start
Starting MySQL. SUCCESS!
大功告成!