数据库 linux 的 mysql 数据库所在分区空间不够,请问如何解决这个问题?

tomwey · 2014年04月04日 · 最后由 Victor 回复于 2014年04月11日 · 7533 次阅读

我现在把 mysql 安装到了系统分区,然后,数据增长太快,系统分区马上就快满了,请问如何迁移到其他分区,求教啊。

dump-drop-create-import

用的 vps 吧,前几天买了一个香港 vps,系统分区只有 7g,数据库移到别的分区操作复杂,不一样的系统还有各种各样的问题,果断退款

请注意,mysql 的数据存放路径可以与安装路径不一样的。你需要做的: 1、暂定 mysql 数据库 2、修改 mysql 数据存放路径 3、将原 mysql 数据文件拷贝至新目录 4、重启 mysql 数据库

1 楼说法正确,我们 14G 压缩到了 3G

@Victor 能详细说一下吗?我对 mysql 不是很熟悉,谢谢。同时谢谢@xiaogui,我试一下你说的。

停掉 mysql, 把 mysql 的 data 目录复制出去 (一般系统安装的都在/var/lib/mysql).

修改 my.cnf 的 datadir 或者建个软连接到原先的 mysql data 目录.

如果有开 selinux 或者 apparmor, 修改对应的安全配置文件.

#4 楼 @Victor

这个真管用?

查看你的 mysql 数据库,看是数据占的那么大空间,还是 mysql 日志占得。

好的,谢谢你们,我试试

@ tnt 建个软连接到原先的 mysql data 目录.这个怎么连接呢?能不能详细一点嘛,谢谢。我不太懂这个

#6 楼 @tnt apparmor 是个坑,你这么一句带过,新手一定掉里面,呵呵

作这些操作,都要停掉 mysql,再重新启动是吧?

#7 楼 @pynix 搞半天你没试过啊。我们试过了。确实好使。 #5 楼 @tomwey 没有什么详细的,关键词 “ibdata1 mysql 压缩” 搜索到的文章都讲的很详细了,我也无非是复制给你。

我们是把 13G 的 ibdata1 压缩到了 3G,不知道跟你说的是不是一回事。

#13 楼 @Victor 我只是想到个思路,没试过。

#11 楼 @Peter 我学 mariadb 直接偷懒清空了 usr.sbin.mysqld :)

#10 楼 @tomwey 停掉 mysql mv /var/lib/mysqld /新路径 ln -s /新路径 /var/lib/mysqld

/var/lib/mysqld 这个原路径视你原先的安装或者设置方式可能需要做下修改.

#4 楼 @Victor 这个需要停机啊。。。而且数据量大,停机时间有点长啊。。。

#13 楼 @Victor ibdata1 体积过大问题也遇到,除了 dump/drop/import 一次,还开启了 innodb_file_per_table 选项。

一般线上用 lvm 来管理硬盘

挂载个新硬盘,把 mysql 的数据文件移到新硬盘 sudo mv /var/lib/mysql 新目录

#15 楼 @tnt 我猜楼主和我们的情况类似,mysql 放在系统分区是贪图阿里云的自动备份功能,近期打算移动到 RDS 去试试了

需要 登录 后方可回复, 如果你还没有账号请 注册新账号