前几天读研时候的同学要我帮忙给解决一个问题,就是Redhat服务器下面安装了LNMP,并且由于分区的划分不当导致MySQL数据库中存放数据库的盘区内空间被急剧消耗,由于该应用主要是数据分析及备份所用,所以可以随时停止服务,并不需要随时在线,对此我给出了一个服务迁移MySQL数据库文件的解决方案,具体如下:
为了能够更真实的模拟对方的生产环境,我在个人的云服务器上进行LNMP的环境安装及配置,由于使用的是帮瓦工的VPS,其内存只选用了1G的配置,平时也是偶尔去墙外逛逛所用,LNMP官网下载安装程序进行安装,刚开始进行就提示报错,要求内存要1G以上,由此中断,后决定在自己的个人电脑上进行实施。
由于不想在自己的个人电脑上乱安装软件,尤其是这种个人集成的多种软件的安装包,因为很清楚这种安装包一般往往是安装特容易,不过是大量的下载安装组件,编译安装,但是由于其中会涉及大太多的非大众的独特设置,由此在卸载时会比较棘手,因此我选择用Ubuntu的安装U盘来Try Ubuntu, 然后实现,这样除了硬盘不是自己本机的,其他如CPU等都是物理机的,性能会比较好,而且U盘是有还原的不怕无法还原。但是,很可悲的是安装了几个小时之后提示硬盘空间不足,十分的悲催,我这一看我这16G的U盘空间全满,实在是要人崩溃,没想到这东西这么吃资源,我这个可是花费了四五个小时弄的东西。后来一狠心,在自己一块不用的移动硬盘上安装了UBUNTU16.04系统,物理启动,再次实现操作。
现给出LNMP的官方地址,有兴趣的可以试试,安装十分便捷,傻瓜式的安装,不过特别吃资源,耗时间:
由于有了前车之鉴,这次我决定研究一下再安装,否则这么吃资源的东西,再安装4、5个小时以后出现什么问题我是要奔溃的,这东西搞上几天实在是话不算,由于是朋友所托,没法子硬着头皮去搞。
这一次我先看了看README,发现了好东西,看来以后安装东西还是要先看看自身所带的说明的,其中有以下这么一句话:
可选2,执行:./install.sh db 可以直接单独安装MySQL或MariaDB数据库。
因为我所要用到的只有MYSQL数据库,由此我只执行这一句话就OK了,这样还会比较节省资源及时间。
执行后的安装选项:
由于我要测试的是5.7.18,所以选择4。
具体的物理迁移参考此文:
https://www.cmhello.com/change-lnmp-www-datadir.html#comments
首先,在数据库中写入表等数据,然后停止数据库服务:
service mysql stop
查看是否关闭:
service mysql status
确认关闭,然后再打开 /etc/my.cnf 文件:
将带有 /usr/local/mysql/var/ 字符串进行修改,假设你要迁移后的文件位置在 /home/XXX 中, 便把 /usr/local/mysql/var/ 改为 /home/XXX/var ,
然后保存退出,记住是所用的 /usr/local/mysql/var/ 字符串进行修改 。
下一步便是物理迁移,使用mv 命令, 将 /usr/local/mysql/var 文件 移动为 /home/XXX/var 。
重启服务, service mysql start 。
查询数据,插入数据,证明成功迁移。