请选择 进入手机版 | 继续访问电脑版

银河数字

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 405|回复: 0

Linux下mysql数据库损坏恢复

[复制链接]

365

主题

0

回帖

1305

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1305
发表于 2024-6-8 17:09:44 | 显示全部楼层 |阅读模式
最近想买服务器上碰到一个坑,购买的阿里云服务器,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服务, 再登陆到数据库发现原来所有的数据和表都在了,包括数据库的用户名和密码都是原来的了。

以此为记录!

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|银河数字

Web Analytics

GMT+8, 2025-4-22 18:45 , Processed in 0.073078 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表