Posts Mysql数据库的数据目录无缝更换记载
Post
Cancel

Mysql数据库的数据目录无缝更换记载

说明

由于各种原因导致MYSQL的数据存储空间不足,需要挂载一个新的磁盘用来保存数据,并且希望原有的数据也同样能够不受其影响,所以在工作中碰到了这个问题需要解决,作出相关记载备忘。

注意

我这里的操作是在MYSQL 5.6.27与CentOS 7.0.1406中进行的,可能其他的系统的操作方式不能完全照搬,但理论流程基本一致。

步骤

停止MYSQL

1
systemctl stop mysql

查看原始盘符文件系统

1
parted -l

格式化新数据盘

由于我这里是”ext4”格式的文件系统,所以我只记录我这边相关情况的信息,其他格式可以搜索网上的格式化方式。

1
mkfs.ext4 /dev/xvdb

挂载新数据盘

1
2
mkdir /mnt/xvdb
mount -t ext4 /dev/xvdb /mnt/xvdb

查看MYSQL的数据目录

查看数据目录的方式有多种,我这里只根据查看”/etc/my.conf”文件的”datadir”属性即可。

1
cat /etc/my.conf

拷贝原始数据至新盘目录中

我这里的MYSQL原始数据目录在”/var/lib/mysql”中。

1
2
mkdir /mnt/xvdb/mysqldata
cp /var/lib/mysql/*  /mnt/xvdb/mysqldata

设置新盘目录文件的拥有者

由于我是通过root用户进行处理以上文件拷贝的,文件的拥有者是root会导致mysql没有权限写入,所以我对照原始文件拥有者及权限进行设置,原始的拥有者与所属组都是mysql。

1
2
3
4
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

1
systemctl start mysql

最后

如果上述有些地方不对的地方还望不吝指出,我会进行修正,这样能帮助更多的人,以免产生误导性。

This post is licensed under CC BY 4.0

Elasticsearch 创建索引与分词研究

Linux lvm 分区扩容与多磁盘分区合并处理

Comments powered by Disqus.