Linux下mysql数据库损坏恢复

最近想买服务器上碰到一个坑,购买的阿里云服务器,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服务, 再登陆到数据库发现原来所有的数据和表都在了,包括数据库的用户名和密码都是原来的了。

以此为记录!

时间: 2024-10-01 05:58:41

Linux下mysql数据库损坏恢复的相关文章

linux下mysql数据库主从同步配置

说明: 操作系统:CentOS 5.x 64位 MySQL数据库版本:mysql-5.5.35 MySQL主服务器:192.168.21.128 MySQL从服务器:192.168.21.129 准备篇: 说明:在两台MySQL服务器192.168.21.128和192.168.21.129上分别进行如下操作 备注: 作为主从服务器的MySQL版本建议使用同一版本! 或者必须保证主服务器的MySQL版本要高于从服务器的MySQL版本! 一.配置好IP.DNS .网关,确保使用远程连接工具能够连接

Linux下MYSQL数据库的基本操作

建立数据库: mysql> create database test; //建立一个名为"test"的数据库 建立数据库表: mysql> create table test -> (name char(16) not null, -> passwd char(16) ->); //建立一个名为"test"的表,里面有两个字段,一个字段名为"name",类型为char,大小为16,非空:另一个字段名为"pa

linux下mysql数据库的学习

转载博客:http://freedomljtt.blog.163.com/blog/static/72294949201210145441701/ ubuntu12.04 卸载和安装mysql 卸载mysql 第一步 1 sudo apt-get autoremove --purge mysql-server-5.0 2 sudo apt-get remove mysql-server 3 sudo apt-get autoremove mysql-server 4 sudo apt-get r

linux下mysql数据库 模型, 管理表 索引

1.linux下mysql数据库及其模型 1.1.SHOW TABLE STATUS LIKE 'user'\G   #查看表的存储引擎 SHOW ENGINES;   #查看数据库支持的存储引擎 客户端工具:mysql.mysqladmin.mysqldump.mysqlimport.mysqlcheck 服务器端工具:mysqld, mysqld_safe, mysqld_multi 1.2.my.cnf检查顺序: /etc/my.cnf --> /etc/mysql/my.cnf -->

Linux下Mysql数据库备份和恢复全攻略

很多用户都有过丢失宝贵数据的经历,随着大量的数据被存入到MySQL数据库中,再加上错误地使用DROP DATABASE命令.系统崩溃或对表结构进行编辑等操作,都可能酿成灾难性的损失.所以对MySQL数据库进行备份,以备在出现意外时及时进行恢复是非常必要的. 一. 使用mysql相关命令进行简单的本地备份     1 mysqlldump命令 mysqldump 是采用SQL级别的备份机制,它将数据表导成 SQL 脚本文件,在不同的 MySQL 版本之间升级时相对比较合适,这也是最常用的备份方法.

Linux下mysql数据库常用命令一

生产真实服务器下环境操作: 192.168.24.37192.168.24.37(Server)081119 Last login: Tue Aug 11 15:08:10 2015 from 192.168.24.1 #远程连接数据库 [[email protected] ~]# mysql -u root -h 117.40.239.9 -p    #远程连接数据库 Enter password: Welcome to the MySQL monitor.  Commands end wit

linux下mysql数据库导入导出命令

首先linux 下查看mysql相关目录[email protected]:~# whereis mysqlmysql: /usr/bin/mysql----   mysql的运行路径 /etc/mysql /usr/lib/mysql-----   mysql的安装路径/usr/bin/X11/mysql /usr/share/mysql/usr/share/man/man1/mysql.1.gz此外还有一个:var/lib/mysql --------mysql数据库data文件的存放路径

Linux 下,mysql数据库报无法登陆错误:ERROR 1045 (28000): Access denied for use

今天在别人的服务器上登录mysql发现无法登陆(Mysql别人实现安装好的) 密码和用户名都是正确的,但登录后报如下错误: ERROR 1045 (28000): Access denied for user ‘admin’@'localhost’ (using password: YES) 尝试了加入-h和-port也无法登陆,最后只能重新修改了.注--该方法也可以用于当忘记数据库密码时,找回数据库密码用 如下是我执行过程,完全执行后,可以顺利登录数据库:linux下的执行脚本: Java代码

Linux下MySQL 数据库的基本操作

1. 创建数据库相关命令: 首先,下载MySQL相关软件包:aptitude install mysql-server/mysql-client MySQL中的root用户类似于Linux下的root用户,拥有最多高的权限,若操作不当会对数据造成严重的危害.因此,针对每一个应用程序创建 对应的数据库及操作用户是一个好习惯. mysql -u root -p -u后跟用户名,-p表示需要密码登录,首次进入mysql用root用户(输入root用户账户的密码,这个密码要么是在安装过程中, 要么是使用