如何修复损坏的mysql数据库,如何恢复损坏的mysql数据库文件
本文内容列表:
- 1. 如何修复MySQL数据库
- 2.如何修复因断电导致的MYSQL数据库数据损坏
- 3. MySQL崩溃修复损坏的innodb:innodb_force_recovery
- 4.如何修复损坏的innodb表
- 5. 如何修复损坏的SQL数据库?
- 6.mysql数据库删除后如何恢复
如何修复MySQL数据库
如何修复MySQL数据库
快速修复所有数据库或特定数据库;方法:进入Mysql的Bin目录:C:\Program Files\MySQL\MySQL Server 4.1\bin
运行:mysqlcheck -A -o -r -uroot -p123
注意,把123改为你自己的root用户密码

如何修复因断电导致的MYSQL数据库数据损坏
修复因断电导致的MYSQL数据库数据损坏
在使用MySQL数据库时,我们遇到了因断电导致的数据库损坏。大家都知道,断电或者非正常关闭是MySQL数据库的原因。最常见的错误原因,如何恢复MySQL数据库,是让大家头疼的问题。有什么方法可以帮助您恢复损坏的 MySQL 数据库吗?
当用户遇到MySQL数据库因断电而丢失、损坏时,如果用户可以进入MySQL软件但提示错误信息,用户可以通过“系统维护”-“数据库压缩”修复数据库压缩(有的软件在“系统设置”-“系统维护”-“数据库备份\恢复”),这种方法只适合少量的数据库错误修复,功能性不高。
有网上推荐两种MySQL数据库恢复方法,一种方法是使用MySQL的check
table和repair
table
sql语句(与PHP结合最好),另一种方法是使用MySQL提供的多个myisamchk (与PHP的最佳组合),
isamchk数据恢复恢复工具。在很多用户看来,这两种方法都比较复杂,并不适合大多数用户。另外,这两种方法都无法有效恢复MySQL数据库,并且可能会导致数据库进一步损坏,给大家造成难以挽回的损失。基于以上原因,这两种MySQL数据库恢复方法不建议大家使用。
。
以下情况会导致数据库损坏:
1。重伤
2。轻度伤害
3。某些表损坏或某些表的某些记录损坏
MySQL崩溃 - 修复损坏的innodb:innodb_force_recovery
在Windows上安装XMAPP控制器后,MySQL间歇性启动失败。检查日期后发现是innodb报错。错误信息如下:
度娘各种解答都无法解决。后来直接看官方文档,直接解决:
陷阱指南--使用配置之前需要做这些操作:
1.配置my.cnf 配置innodb_force_recovery = 1到6.尝试直到可以正确,启动MySQL
2.导出数据脚本 mysqldump -uroot -p123456 test test.sql 导出SQL脚本。或者使用 Navicat 将所有数据库/表导入到其他服务器上的数据库。注意:这里的数据一定要备份。然后删除原数据库中的数据。 ?删除配置或者配置为innodb_force_recovery = 0,重启MySQL服务
5.将数据导入MySQL数据库 mysql -uroot -p123456 test test.sql;
或者使用Navicat将备份的数据导入到数据库。如果导入数据过程中该表空间不存在,请删除数据目录下对应数据库中的文件。
如何修复损坏的innodb表
InnoDB 表损坏
InnoDB有一个内部恢复机制。如果数据库崩溃,InnoDB会尝试通过运行最后时间戳的日志文件来修复数据库。
大多数情况都会得到修复,整个过程是透明的。
如果InnoDB无法自行修复,数据库将无法启动。
在继续之前,请浏览 MySQL 日志文件以确认数据库因 InnoDB 表损坏而崩溃。
一种方法是更新 InnoDB 日志文件计数器以跳过导致崩溃的查询。这种情况下会造成数据不一致,经常会中断主从复制。
一旦确定MySQL因InnoDB表损坏而无法启动,您可以按照以下5个步骤进行修复:
1.将以下配置添加到文件 /etc/my.cnf
innodb_force_recovery = 4
2 。现在可以重新启动数据库。在innodb_force_recovery配置特性下,所有插入和更新操作都将被忽略;
3。导出所有数据表;
4。关闭数据库并删除所有数据表文件和目录,然后运行mysql_install_db创建默认的MySQL数据表;
5。删除/etc/my.cnf中的innodb_force_recovery行,然后启动MySQL(此时MySQL正常启动);
6。从步骤 3 开始,从备份文件恢复所有数据。
如何修复损坏的 SQL 数据库?
? (不是这样命名的),检查磁盘空间是否有足够的空间;
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 '允许更新',1
使用覆盖重新配置
go
开始 trans
更新 sysdatabases 设置状态 = 32768 其中 name = 'hbposv6_branch_branch'-er update com commit tran
去
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')
-输入数据库路径
7.停止 SQL,然后重新启动 SQL Server 服务,然后运行:
use master
go
update sysdatabases set status = 8 where name = 'hbposv6_branch'
go
sp_configure', '允许更新' 0
使用覆盖
go
8重新配置。运行 dbcc checkdb(db_name) 以检查数据库的完整性
9。修复号码库
--请在查询分析器中执行以下语句。在运行之前断开所有其他
数据库连接。最好拔掉网线
--如果不是数据库名,请更改数据库
--hbposv6_branch
--更改为要修复的数据库
USE master
Go
--单用户模式
EXEC sp_dboption 'hbposv6_branch', 'single user', 'TRUE'
go
--数据库检查bpos Go
--如果返回结果出现红色提示,则说明数据库有错误,需要修复
--数据库修复
DBCC CHECKDB('hbposv6_branch','repair_rebuild')
Go
--再次检查数据库。如果返回结果没有红色提示,则
表示修复成功;
DBCC CHECKDB('hbposv6_branch')
Go
--否则说明需要更高级别的修复;尝试将上面修复语句中的
'repair_rebuild'更改为'repair_allow_data_loss'并重试,在
之后再次检查数据库。
--如果仍有错误未修复,请将此信息通过文本发送给我们
--退出前务必执行以下语句返回多用户模式
EXEC sp_dboption 'hbposv6_branch ', '单用户', 'FALSE'
go
注意:将 dbname 替换为真实的数据库名称。
mysql数据库删除后如何恢复
1 找另一台机器安装同版本的mysql或者安装在另一台同版本的机器上(不是同版本也可以尝试):
复制mysql/data/mysql目录到your mysql/ data/ Let's go
2 尝试启动 mysql 服务。如果可以启动,理论上应该只是丢失一些用户、权限等系统信息,不影响您使用的数据;
如果无法启动,请查看错误日志,尝试启动。
3 快速备份数据,删除所有库(仅限你后面创建的业务相关库,mysql库除外),重新导入。从理论上讲,不这样做也可以,但仅限于非生产关键环境。
4 再次授权用户。
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
code前端网
