记录一次比较糟心的数据库目录挂载

服务器的磁盘目录满了,我需要将现有的数据库datadir目录挂载到另一个目录上。一开始觉得很简单,无非就是修改/etc/my.cnf中的datadir属性值…于是一连串的问题就接踵而至,解决完之后真心觉得留下了没技术的泪水……所以就想记录一下在这次解决问题过程中碰到的坑…

一、场景再现

今早,同事报了个问题说数据库新建表失败了,并且明确传达给我的消息是可能服务器的数据库存储盘满了。远程连接到数据库,进行磁盘空间的查看:
服务器环境:CentOS 6

df -lh

df
其中第1个我标注出来的就是被撑爆的磁盘,现在解决掉了所以降低到了66%,但是早上刚打开的时候显示是100%,也就是说存储完全被占满了。好,那我现在的目标就是找到数据库的配置文件-my.cnf,并把设置数据库目录的参数修改为我现在挂载上去的新的目录,即我标注出来的第2个/HuaYunData目录。

vim /etc/my.cnf

示例
在datadir处修改为现在的磁盘目录,相应地在socket处前缀也为要修改的目录。
修改完了,重启数据库,正常情况下,重启后配置就生效了,一切就大功告成,我也就功成身退了。这个时候,不可预知的错误就这么来了,启动mysql报错,报错信息是:The server quit without updating PID file
这是个什么错误?从来没见过啊。好,这个时候开始百度查找资料,其中有一篇博客提到说,解决办法其实很简单:将 /etc/mysql 下的 my.cnf 文件删除,再次启动MySQL服务。原博地址:https://blog.csdn.net/aa464971/article/details/52976230
在这里插入图片描述
看了一下底下的评论,有一些夸赞博主说问题已经解决的。
在这里插入图片描述
看到第一页评论里这么多兄弟都解决了问题,再加上这位博主的博客等级也很高,不管了,冲冲冲!直接将my.cnf文件一删,再次尝试启动mysql,结果还是跟之前的一样。这个时候我开始慢慢着急了……因为我的my.cnf配置文件没有进行备份,wtf!回到提出这个解决方案的博客文中查找是否遗漏了什么步骤,最后在末尾红色字体中注意到了博主的提示:删除前注意备份
然后觉得评论的兄弟是不是假的……我翻到了第二页评论,这下才觉得自己没有按照博主说的备份后再删除是多么愚蠢的行为……
在这里插入图片描述
可能我遇到的这个错误原因跟其他兄弟不一样,有一些能解决,有一些跟我一样也是解决不了。当然在这里没有怪博主的意思哈,明明就是自己心急没长眼睛,不备份就胡乱删文件能怪谁……接下去该怎么办呢,原先的配置文件是指定找不回来了。

二、解决方案

绞尽脑汁想回忆一下原先的my.cnf文件内容,但是源于自己对数据库配置文件的原理不是很懂,从其他服务器想拷贝一个my.cnf文件,再到自己修修改改这期间大概挣扎了一个多小时,最后还是以失败告终。
没办法了!记录一下现在的数据库datadir地址,将它搬运到我要迁移的地址处,然后将数据库删了,重新下。
下载mysql的步骤可以参照我之前写的博客Linux新服务器的基本配置(java+tomcat+mysql),其中的mysql详细的安装步骤。
下载好之后,就要将默认的数据库目录指向我现在新挂载的目录里。
因为在这里我沿用了之前的备份数据作为目录,所以就不用将新安装的数据库数据迁移过来了。

  • 首先要建立挂载目录与实际目录的软连接,类比快捷方式,这里我以要挂载的目录/HuaYunData为例,后缀的mysql.sock不变,后面的初始连接地址只要是通过yum安装则:/var/lib/mysql/mysql.sock的地址也不变
ln -s /HuaYunData/mysql.sock /var/lib/mysql/mysql.sock
  • 然后进入到之前让人难过的修改my.cnf环节
vim /etc/my.cnf

datadir处修改为你要建立的目录,我这里为/HuaYunData,即datadir=/HuaYunData

  • 继续修改一些配置文件
vim /usr/lib64/mysql/mysql_config

以下两处需要进行修改,修改结果如下所示:
socket=’/HuaYunData/mysql.sock’
ldata=’/HuaYunData’

  • 重启mysql,检查结果
service mysqld start

激动人心的时候到了……成败与否就看这一下了。
等了大概三秒,提示了一个绿色的[OK],终于长舒一口气。如果各位还出现了失败的情况,先不要难过,有可能是你的挂载目录没有权限的问题,分配一下即可:

chown -R mysql:mysql /HuaYunData/

由于我用了之前数据库的配置,所以直接用原先的数据库连接信息就能登录了。如果你是一个新的数据库,最好参照参考资料中的文章。


问题到这里就告一段落了,虽然最终结果是好的,但是过程太过曲折,差点就真的删库跑路了。不过好在下班前解决了这个问题,毕竟今天是周五……

三、结论

每一步操作都做好记录,方便做回滚操作。每一个文件的操作都做好备份,切记!

参考资料:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值