最近想买服务器上碰到一个坑,购买的阿里云服务器,20G的系统盘,前任那个家伙把mysql安装在系统盘,并且datadir也是定位在系统盘。终于,撑爆了,异常了,mysql服务无法启动,好在将datadir下的数据文件全部都做了备份。特别是ibdata1文件做了备份。

关于ibdata1文件的作用在百度里面查询到的信息如下:


这个文件超级大, 查了一下, 大概的作用如下

是储存的格式
INNODB类型数据状态下,
ibdata用来储存文件的数据
而库名的文件夹里面的那些表文件只是结构而已

由于mysql4.1默认试innodb,所以这个文件默认就存在了
http://man.chinaunix.net/database/mysql/inonodb_zh/2.htm 这个链接试innodb的中文参考, innodb的东西可以在my.ini中设置


既然有完整的ibdata1和每个数据库表的结构,那么重新安装mysql,并且重新定位datadir的位置。

删除所有与mysql相关的目录后,系统盘并没有释放太多数据,检查了好久,也通过各种方法进行系统盘清理。效果不明显,后来想到服务器上面安装有jboss,每次启动的时候使用nohup run.sh -b 0.0.0.0  然后发现nohup.out这个文件是非常大的。

于是在系统盘搜索了一下 find / -name nohup.out

果然,好家伙一下子占了2G的大小,马上将jboss重新mv定位到了挂载的500G的数据盘上去了。系统盘的空间解决完毕后,就重新安装mysql,然后还原数据。

其实,说来并不复杂,安装mysql就不赘述了,安装完毕后,停止mysql服务,将之前备份好的文件移到到现在安装的datadir目录下。 重启mysql服务, 再登陆到数据库发现原来所有的数据和表都在了,包括数据库的用户名和密码都是原来的了。

以此为记录!