linux环境下通过软链接变更mysql数据存储路径

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux环境下通过软链接变更mysql数据存储路径相关的知识,希望对你有一定的参考价值。

参考技术A

想要改变mysql数据存储路径的想法最初是在生产服务器上mysql的数据放到了系统盘上,导致系统盘满额,没有足够的内存交换空间而死机。
将mysql数据存储到其他目录下有两种方法,方法一修改my.cnf配置文件,不过经过笔者通过网上的配置资料尝试总是不成功,环境是在centos7下操作的。后来想到一个简单的方法,通过linux的软链接将实际数据放到另外的目录里面就可以了。

操作系统是centos7
mysql是通过二进制包里面的rpm方式安装的。相当于全自动了。

先关闭mysql

默认情况下,rpm安装好的mysql会将数据放置在 /var/lib/mysql 目录当中,我们像将数据迁移到/mnt/data目录当中在terminal当中输入:

mv命令会直接将 /var/lib/mysql 文件夹直接剪切到 /mnt/data 目录当中。
这时我们需要回到/var/lib目录当中,

在这个目录当中建立软链接。

软链接相当于windows里面创建目录快捷方式是一样的,这个时候你应该可以看到mysql文件夹回到了 /var/lib 目录当中,要进去查看一下mysql的路径是否和my.cnf一致。
这时候我们再启动mysql

以上我们就将数据迁移到其他目录下,并且还没有修改和变更my.cnf文件。

Linux硬链接和软链接

1.硬链接:文件别名
通过前面讲的Linux ext2文件系统,我们知道在目录文件的block中,存放着目录下文件的文件名和对应的inode。
可以将多个文件名对应到同一个inode,
新建一条文件名链接到某inode号,这就是硬链接。

可以看出,硬链接只是新建了一个文件名,关联到一个已存在的文件。
此时,目录下的block多写了一个文件名/inode的数据
所以,硬链接没有增加inode和block的耗用。

2.软链接:类似windows中的快捷方式
软链接的实质是,创建了一个独立的文件,而读取这个文件时,会指向它链接的那个文件的文件名。类似于重定向的功能。

软链接新建了文件,所以是要耗用inode和block的

3.硬链接和软链接的比较

1)硬链接比较安全,多个文件名对应一个inode时,若删除文件,只要还有其他的文件名对应着这个inode文件,文件就不会删除,
此时,只是将文件的连接数减1,当连接数为0时,文件真正删除

硬链接不会耗用inode和block

硬链接不能链接到目录

2)软链接
软链接比较灵活,可以链接到文件和目录
但是会耗用inode和block,不过这点空间不算什么。
若目标文件删除,则读取链接文件会失败。

以上是关于linux环境下通过软链接变更mysql数据存储路径的主要内容,如果未能解决你的问题,请参考以下文章

Linux 20180413 软链接硬链接

在Linux环境下建立python3提示文件已存在软链

如何修改mysql数据文件存储位置

linux文件链接文件存储和硬链接软连接

linux软链接(符号链接)

linux命令软连接和硬链接的区别(ln命令)