mysql数据库损坏后成功恢复(mysql数据库损坏修复)

本文目录一览:

如何修复MySQL数据库

简单情况下:进入原来mysql安装路径下的data文件夹下,找到相应的库和ibdata1,进行copy,就可回复原来的数据。

复杂情况下:

从另一台机上把MySQL数据库的mysql文件夹拷贝到本地机上,目的是恢复本地机对数据的访问和操作。经过如下几种情况的操作。

1. 在本地重装MySQL(安装目录D:\Program Files\MySQL\MySQL Server 5.0),直接把mysql文件夹拷贝至D:\Program Files\MySQL\MySQL Server 5.0\。结果,失败:数据库连接错误。

2. 卸载后重装MySQL,将D:\Program Files\MySQL\MySQL Server 5.0\下的数据备份,只把mysql\data文件夹全部内容拷贝到D:\Program Files\MySQL\MySQL Server 5.0\data下。结果,失败:数据库连接错误。将备份的数据还完覆盖。结果,失败,还是连接不上数据库。

3. 卸载后重装MySQL,将mysql\data文件夹里的cf1,last文件夹(这两个是原来MySQL里的数据库)拷贝进D:\Program Files\MySQL\MySQL Server 5.0\data。连接成功,在Navicat for MySQL里看到数据库cf1和last,但是不能访问,因为数据全为零。明白了原来data里以数据库命名的文件存储的是数据库的表结构,不是元数据。下一步,把data文件夹里的ibdata1文件(3.4G大,明显存储了元数据)拷贝到D:\Program Files\MySQL\MySQL Server 5.0\data里,代替原来的ibdata1文件。重启电脑,打开Navicat for MySQL,连接成功,数据可以访问操作。

至此,操作终于成功。其实当初在那台机上把数据导出来,而不是现在直接把文件夹mysql复制过来会更容易恢复。但那台机已经重装了系统,也就是说MySQL失效了。

如何修复MYSQL数据库因断电造成的数据损坏

修复MYSQL数据库因断电造成的数据损坏

在使用MySQL数据库的时候,都碰到过因断电造成数据库损坏的情况,大家都知道,断电或非正常关机是导致MySQL数据库出现错误最常见的原因,如何恢复MySQL数据库是大家都非常头痛的问题。目前有方法可以帮助大家恢复损坏的MySQL数据库吗?

当用户出现断电造成的MySQL数据库丢失损坏时,如果能进入MySQL软件,但是提示错误信息,用户可以通过“系统维护”—“数据库压缩修复”,压缩下数据库(有些软件在“系统设置”—“系统维护”—“数据库备份\恢复”中),这种方法只适合一小部分的数据库故障修复,功能性并不高。

现在网络上有两种比较推荐使用的MySQL数据库恢复方法,一种方法使用MySQL(和PHP搭配之最佳组合)的check table和repair table 的sql语句,另一种方法是使用MySQL(和PHP搭配之最佳组合)提供的多个myisamchk, isamchk数据检测恢复工具。在很多用户看来,这两个方法都比较复杂,并不适合大多数的用户使用。另外,这两种方法并不能有效的恢复MySQL数据库,可能还会造成数据库被进一步损坏,造成大家无法挽回的损失。根据以上几个原因,这两种MySQL数据库恢复方法并不建议大家使用。

数据库被损坏分以下几种情况:

1、严重损坏

2、轻度损坏

3、有些表被损坏或有些表的部分记录被损坏

mysql数据库被破坏,只剩下ibd文件时如何恢复

在使用独立表空间的情况下,如果不慎使得innodb存储引擎的元数据文件ibdata损坏,我们还可以挽救宝贵的数据.因为在innodb使用独立表空间的情况下,ibdata文件会记录每个innodb表的id,只要使得ibd中的表id和ibdata文件中记录的表id相同,就能够打开表,读取到数据.

#创建表

CREATE TABLE `ibdtest` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `fid` int(11) NOT NULL COMMENT ‘表b中的id’,  `content` char(255) NOT NULL COMMENT ‘操作内容,系统生成’,  `mark` char(255) NOT NULL COMMENT ‘备注’,  PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8

#添加数据INSERT ibdtest (fid,content,mark) VALUES (1,’1′,’1′),(2,’2′,’2′);SELECT * FROM ibdtest;

怎样修复已经损坏的SQL数据库?

1.停止SQL Server的服务,备份SQL Server安装目录下的\data子目录

下故障数据库的两个文件,一个数据文件hbposv6_branch_data.mdf,

一个hbposv6_branch_log.ldf(也有可能非此命名),同时查看磁盘

空间是否有足够的空间;

2.启动SQL Server服务(如已停止),创建一个新的数据库,命名为

原来数据库的名字。

3.停止SQL Server

4.把老数据库的MDF文件(hbposv6_branch_data.mdf)替换

新数据库的相应的MDF文件,

并把LDF文件(hbposv6_branch_log.ldg)删除。

5.重新启动SQL Server服务,然后运行如下命令:

Use Master

go

sp_configure ‘allow updates’, 1

reconfigure with override

go

begin tran

update sysdatabases set status = 32768 where name = ‘hbposv6_branch’

–Verify one row is updated before committing

commit tran

go

6.停止SQL然后重新启动SQL Server服务,然后运行如下命令

(更换日志文件路径地址):

use master

go

DBCC TRACEON(3604)

DBCC REBUILD_LOG

(‘hbposv6_branch’,

‘c:\Program Files\Microsoft SQL Server\MSSQL\Data\hbposv6_branch_log.ldf’)

–在这里,请输入你的数据库的路径

go

7.停止SQL然后重新启动SQL Server服务,然后运行:

use master

go

update sysdatabases set status = 8 where name = ‘hbposv6_branch’

go

sp_configure ‘allow updates’, 0

reconfigure with override

go

8.运行dbcc checkdb(db_name) 检查数据库的完整性

9.修复数库

–请在查询分析器中执行下列语句.执行前断开其它

所有数据库连接,最好是断开网线

–如果不是该数据库名,请将数据库

–hbposv6_branch

–改为要修复的数据库

USE master

Go

–单用户模式

EXEC sp_dboption ‘hbposv6_branch’, ‘single user’, ‘TRUE’

go

–数据库检查

DBCC CHECKDB (‘hbposv6_branch’)

Go

–如果返回结果出现了红色的提示文字,说明数据库中存在错误,需要修复

–数据库修复

DBCC CHECKDB (‘hbposv6_branch’,’repair_rebuild’)

Go

–再次数据库检查,如果返回结果中没有了红色的提示文字,

说明修复成功;

DBCC CHECKDB (‘hbposv6_branch’)

Go

–否则意味着还需要更高级别的修复;尝试将上面修复语句的

‘repair_rebuild’换为’repair_allow_data_loss’再试,

之后再次检查数据库。

–如果还有错误未修复,请把这些信息以文字的方式发给我们

–退出前请一定要执行以下语句返回到多用户模式

EXEC sp_dboption ‘hbposv6_branch’, ‘single user’,’FALSE’

go

注:都要把 dbname 替换成真实的数据库名字。

怎么恢复mysql数据库怎么恢复数据

简单情况下:进入原来mysql安装路径下的data文件夹下,找到相应的库和ibdata1,进行copy,就可回复原来的数据。

复杂情况下:

从另一台机上把MySQL数据库的mysql文件夹拷贝到本地机上,目的是恢复本地机对数据的访问和操作。经过如下几种情况的操作。

1.

在本地重装MySQL(安装目录D:\Program

Files\MySQL\MySQL

Server

5.0),直接把mysql文件夹拷贝至D:\Program

Files\MySQL\MySQL

Server

5.0\。结果,失败:数据库连接错误。

2.

卸载后重装MySQL,将D:\Program

Files\MySQL\MySQL

Server

5.0\下的数据备份,只把mysql\data文件夹全部内容拷贝到D:\Program

Files\MySQL\MySQL

Server

5.0\data下。结果,失败:数据库连接错误。将备份的数据还完覆盖。结果,失败,还是连接不上数据库。

3.

卸载后重装MySQL,将mysql\data文件夹里的cf1,last文件夹(这两个是原来MySQL里的数据库)拷贝进D:\Program

Files\MySQL\MySQL

Server

5.0\data。连接成功,在Navicat

for

MySQL里看到数据库cf1和last,但是不能访问,因为数据全为零。明白了原来data里以数据库命名的文件存储的是数据库的表结构,不是元数据。下一步,把data文件夹里的ibdata1文件(3.4G大,明显存储了元数据)拷贝到D:\Program

Files\MySQL\MySQL

Server

5.0\data里,代替原来的ibdata1文件。重启电脑,打开Navicat

for

MySQL,连接成功,数据可以访问操作。

至此,操作终于成功。其实当初在那台机上把数据导出来,而不是现在直接把文件夹mysql复制过来会更容易恢复。但那台机已经重装了系统,也就是说MySQL失效了。

怎么恢复mysql数据库

mysql数据库恢复方法:

方法一:

命令恢复数据库:

mysql -u root –password=root密码 数据库名 备份文件.sql

方法二:

第一步:用管理员权限登录并进入后台管理界面,点“数据库-资料恢复”。

第二步:在数据恢复设置中选择“从本地文件”进行恢复,然后通过右边的“浏览”按钮找到之前保存下来的.sql文件。

第三步:点“提交”按钮后将出现询问“分卷数据成功导入数据库,需要自动导入本次其他的备份吗?”一般继续点“确定”按钮即可。之后的数据库文件就完全导入到当前网站了。这时出现再次要求输入管理员帐号的提示。访问网站地址时也会看到所有信息都恢复到备份数据库时的内容了。

小提示:

不管采取哪种方式备份和恢复数据库,一定要注意备份和恢复时使用的版本要相同,甚至是语言种类也要一致,否则会存在乱码的问题。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/243040.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-12 12:54
下一篇 2024-12-12 12:54

相关推荐

  • 如何修改mysql的端口号

    本文将介绍如何修改mysql的端口号,方便开发者根据实际需求配置对应端口号。 一、为什么需要修改mysql端口号 默认情况下,mysql使用的端口号是3306。在某些情况下,我们需…

    编程 2025-04-29
  • Python 常用数据库有哪些?

    在Python编程中,数据库是不可或缺的一部分。随着互联网应用的不断扩大,处理海量数据已成为一种趋势。Python有许多成熟的数据库管理系统,接下来我们将从多个方面介绍Python…

    编程 2025-04-29
  • openeuler安装数据库方案

    本文将介绍在openeuler操作系统中安装数据库的方案,并提供代码示例。 一、安装MariaDB 下面介绍如何在openeuler中安装MariaDB。 1、更新软件源 sudo…

    编程 2025-04-29
  • Python操作MySQL

    本文将从以下几个方面对Python操作MySQL进行详细阐述: 一、连接MySQL数据库 在使用Python操作MySQL之前,我们需要先连接MySQL数据库。在Python中,我…

    编程 2025-04-29
  • 数据库第三范式会有删除插入异常

    如果没有正确设计数据库,第三范式可能导致删除和插入异常。以下是详细解释: 一、什么是第三范式和范式理论? 范式理论是关系数据库中的一个规范化过程。第三范式是范式理论中的一种常见形式…

    编程 2025-04-29
  • MySQL递归函数的用法

    本文将从多个方面对MySQL递归函数的用法做详细的阐述,包括函数的定义、使用方法、示例及注意事项。 一、递归函数的定义 递归函数是指在函数内部调用自身的函数。MySQL提供了CRE…

    编程 2025-04-29
  • leveldb和unqlite:两个高性能的数据库存储引擎

    本文将介绍两款高性能的数据库存储引擎:leveldb和unqlite,并从多个方面对它们进行详细的阐述。 一、leveldb:轻量级的键值存储引擎 1、leveldb概述: lev…

    编程 2025-04-28
  • Python怎么导入数据库

    Python是一种高级编程语言。它具有简单、易读的语法和广泛的库,让它成为一个灵活和强大的工具。Python的数据库连接类型可以多种多样,其中包括MySQL、Oracle、Post…

    编程 2025-04-28
  • MySQL bigint与long的区别

    本文将从数据类型定义、存储空间、数据范围、计算效率、应用场景五个方面详细阐述MySQL bigint与long的区别。 一、数据类型定义 bigint在MySQL中是一种有符号的整…

    编程 2025-04-28
  • MySQL左连接索引不生效问题解决

    在MySQL数据库中,经常会使用左连接查询操作,但是左连接查询中索引不生效的情况也比较常见。本文将从多个方面探讨MySQL左连接索引不生效问题,并给出相应的解决方法。 一、索引的作…

    编程 2025-04-28

发表回复

登录后才能评论