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

一、场景再现

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

df -lh


其中第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/

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


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

三、结论

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

参考资料:

  • mysql 更改默认数据目录
  • MySQL启动出现The server quit without updating PID file错误解决办法

记录一次比较糟心的数据库目录挂载相关推荐

  1. 记录一次糟心的pyinstall安装经历

    记录一次糟心的pyinstall安装经历 在下载安装pyinstall的时候遇到了一个问题: File "<unknown>", line 3789f'Export d ...

  2. 2019-11-29-逗比面试官成长路线-如何让被面试者觉得糟心

    title author date CreateTime categories 逗比面试官成长路线 如何让被面试者觉得糟心 lindexi 2019-11-29 08:50:29 +0800 2019 ...

  3. 微信小程序糟心开发过程

    前段时间接触了一个微信小程序的开发,刚开始接到有点小怕吧毕竟以前接触的是web项目(虽然小程序也只是写写接口,还有一个后台管理系统吧),但是想着这也是锻炼自己的一个机会吧还是接下来了,然后就接下来了. ...

  4. 2019-9-6-逗比面试官成长路线-如何让被面试者觉得糟心

    title author date CreateTime categories 逗比面试官成长路线 如何让被面试者觉得糟心 lindexi 2019-09-06 09:25:44 +0800 2019 ...

  5. php如何查询数据是否存在,PHP判断数据库中的记录是否存在的方法,php数据库_PHP教程...

    PHP判断数据库中的记录是否存在的方法,php数据库 本文实例讲述了PHP判断数据库中的记录是否存在的方法.分享给大家供大家参考. 具体实现代码如下: 复制代码 代码如下: $sql="se ...

  6. 返回内容验签失败_邮件经常失败回弹很糟心?一定要知道这几个小知识

    很多人都反应每次发送邮件,总有一部分发生失败回弹,大大影响了送达率,非常糟心! 今天我们为大家整理了一些常见关于发送回弹状态的相关知识以及如何避免邮件回弹的注意事项. 一.回弹状态的两种类型 邮件发送 ...

  7. php判断记录,PHP判断数据库中的记录是否存在的方法,php数据库_PHP教程

    PHP判断数据库中的记录是否存在的方法,php数据库 本文实例讲述了PHP判断数据库中的记录是否存在的方法.分享给大家供大家参考. 具体实现代码如下: 复制代码 代码如下: $sql="se ...

  8. 滚蛋吧,2020的糟心事儿!2021,先“拼”为敬!

    2020年终于要过去了!过去一年,从扛过疫情,到送走科比.马拉多纳等一个个青春记忆,从上班上着公司就没了,到遭遇长租公寓暴雷,每个人都不容易. 但好在乐观精神永远都伴随着我们,大家都调侃着自己是&qu ...

  9. 越是糟心时,越要用起写作这个武器

    有的伙伴跟我说,我最近事情太多了,不能够写作了,这个时候我就劝她:还是写起来吧,把写作这个武器运用起来 写作首先来说就是疗愈,让自己的内心变得通透,才能够吸收更多的正向价值,这个时候的分辨力,可以是1 ...

最新文章

  1. linux 如何运行.sql文件
  2. 电大本科计算机考试题库及答案,电大计算机考试题题库及答案.doc
  3. linux文件夹权限问题
  4. 用AI击破传统行业痛点 “百度大脑行业创新论坛”将提7大行业解决方案
  5. CentOS各个版本镜像下载地址
  6. Android Bitmap史上最详细全解 | 原力计划
  7. 自考计算机应用技术题,全国自考计算机应用技术试题及答案解析-20210522014558.docx-原创力文档...
  8. 2003系统安全配置
  9. ISA2000安装与设置
  10. 建站基础知识之CSS 究竟什么来头?
  11. 《代码整洁之道》第14章 逐步改进 的代码片段
  12. php递归返回值只有第一次的结果,php递归函数出现返回值问题的解决
  13. 从日本动漫看项目管理
  14. locality sensitive hashing(LSH)原理和具体实现
  15. AopAutoConfiguration matched: - @ConditionalOnProperty (spring.aop.auto=true) matched (OnPrope.
  16. BIM模型文件下载——江湖别墅Revit模型
  17. mysql ndb安装_MySQL NDB Cluster 安装文档-基于CentOS7搭建
  18. gpio上拉下拉区别
  19. js中如何判断undefined
  20. 在 Jetpack Compose 中安全地使用数据流

热门文章

  1. 网络空间安全用户隐私的泄露与防护 常用文件QQ 等的保存路径!
  2. UBports使用Anbox玩耍安卓APPs
  3. Springboot+JWT+SpringSecurity+Vue+Redis 前后端分离登录(1后端)
  4. JavaScript基础算法
  5. mysql5.1 emoji_技术|如何在 MySQL 中存储 emoji ?
  6. 日语二级语法汇总(part8/16)
  7. QuickMenu 超强悍菜单_网页代码站(www.webdm.cn)
  8. SAP - 表、业务流程
  9. TCP传输连接--建立连接阶段(TCP三次握手)
  10. 大数据、云计算、物联网、数据仓库、OLAP、OLTP、等大数据你必须知道并且了解的概念及相关关系,我的一些总结