说明
由于各种原因导致MYSQL的数据存储空间不足,需要挂载一个新的磁盘用来保存数据,并且希望原有的数据也同样能够不受其影响,所以在工作中碰到了这个问题需要解决,作出相关记载备忘。
注意
我这里的操作是在MYSQL 5.6.27与CentOS 7.0.1406中进行的,可能其他的系统的操作方式不能完全照搬,但理论流程基本一致。
步骤
停止MYSQL
systemctl stop mysql
查看原始盘符文件系统
parted -l
格式化新数据盘
由于我这里是”ext4”格式的文件系统,所以我只记录我这边相关情况的信息,其他格式可以搜索网上的格式化方式。
mkfs.ext4 /dev/xvdb
挂载新数据盘
mkdir /mnt/xvdb
mount -t ext4 /dev/xvdb /mnt/xvdb
查看MYSQL的数据目录
查看数据目录的方式有多种,我这里只根据查看”/etc/my.conf”文件的”datadir”属性即可。
cat /etc/my.conf
拷贝原始数据至新盘目录中
我这里的MYSQL原始数据目录在”/var/lib/mysql”中。
mkdir /mnt/xvdb/mysqldata
cp /var/lib/mysql/* /mnt/xvdb/mysqldata
设置新盘目录文件的拥有者
由于我是通过root用户进行处理以上文件拷贝的,文件的拥有者是root会导致mysql没有权限写入,所以我对照原始文件拥有者及权限进行设置,原始的拥有者与所属组都是mysql。
ls /var/lib/mysql/ -l
ls /mnt/xvdb/mysqldata-l
chown mysql /mnt/xvdb/mysqldata -r
chgrp mysql /mnt/xvdb/mysqldata -r
更改MYSQL启动时的目录
我这里只需要编辑”/etc/my.cnf”文件,把”datadir”替换成新目录即可。
启动MYSQL
systemctl start mysql
最后
如果上述有些地方不对的地方还望不吝指出,我会进行修正,这样能帮助更多的人,以免产生误导性。