如何让mysql无法恢复_Mysql无法启动情况下,如何恢复数据?

当MySQL因意外无法启动,但数据文件未丢失时,可以按照以下步骤进行数据迁移。首先,在A服务器上找到datadir路径并进入数据文件夹。然后,在B服务器上创建相同库并进入数据目录。停止B服务器的MySQL服务,将A服务器中特定库的文件(除db.opt外)发送至B服务器,并解压。修改文件夹权限为mysql用户和组。如果遇到错误1146或1036,需复制A服务器的ibdata1文件到B服务器。完成这些步骤后,数据迁移和恢复即告成功。注意数据文件夹权限的变更和InnoDB存储引擎对.MYD和.MYI文件的影响。

本文适用于,MySQL无法启动,但数据文件未丢失的情况。

Mysql因意外情况,导致无法启动,数据库未做备份的情况下,如何将数据迁移至其他数据库中。

原数据库地址:192.168.1.100(以下简称A服务器)

新数据库地址:192.168.2.100(以下简称B服务器)

数据恢复流程:

进入A服务器,输入命令 cat /etc/my.cnf (如文件不在当前位置,可使用find / -name my.cnf 命令查询文件位置)

找到datadir 路径

6cdeeafccfc48c174ba3b0f32c73f259.png

通过cd /www/server/data 命令,进入数据文件夹。

abc5638f5897ab8285a8a96cad290708.png

当前文件夹里面就是mysql中所有库的数据文件存放位置。

下面以bus文件夹中文件,演示具体如何恢复文件。

进入B服务器,创建与A服务器bus库,用户名,密码相同的库。创建成功后,通过上面方法,进入数据文件目录,也会出现一个bus文件夹。

停止B服务器mysql服务,将A服务器中bus文件夹中,除db.opt文件外的其他文件打包,发送至B服务器数据目录的bus文件夹中。解压。

通过命令行,将/www/server/data/bus文件夹的所有者和组,更改成mysql

更改所有者

Chown -R mysql /www/server/data/bus

更改组

Chgrp -R mysql /www/server/data/bus

更改成功后,启动B服务器数据库,进入数据库后,如提示error: 1146: Table doesn't exist,还需将A服务器,数据文件夹中ibdata1 文件,拷贝至B服务器相应位置,同时更改相应的所有者和组权限。

至此,数据文件恢复数据库工作完成,

注1:如未改动数据文件夹所有者和组,启动数据库后,进入bus库点击相应表名会出现 ERROR #1017 :Can't find file: '/xxx.frm' 错误或ERROR #1036 Table '表名' is read only

注2:如数据库较多,可能会发现,部分数据库文件中有.frm .MYD .MYI这三种文件,部分数据库中只有.frm文件,这是因为MySQL存储表的时候,使用的默认数据库存储引擎是InnoDB,而使用InnoDB存储引擎的时候,是不生成.MYD 和.MYI文件的。

本文适用于,mysql无法启动,但数据文件未丢失的情况。

Mysql因意外情况,导致无法启动,数据库未做备份的情况下,如何将数据迁移至其他数据库中。

原数据库地址:192.168.1.100(以下简称A服务器)

新数据库地址:192.168.2.100(以下简称B服务器)

数据恢复流程:

进入A服务器,输入命令 cat /etc/my.cnf (如文件不在当前位置,可使用find / -name my.cnf 命令查询文件位置)

找到datadir 路径

6cdeeafccfc48c174ba3b0f32c73f259.png

通过cd /www/server/data 命令,进入数据文件夹。

abc5638f5897ab8285a8a96cad290708.png

当前文件夹里面就是mysql中所有库的数据文件存放位置。

下面以bus文件夹中文件,演示具体如何恢复文件。

进入B服务器,创建与A服务器bus库,用户名,密码相同的库。创建成功后,通过上面方法,进入数据文件目录,也会出现一个bus文件夹。

停止B服务器mysql服务,将A服务器中bus文件夹中,除db.opt文件外的其他文件打包,发送至B服务器数据目录的bus文件夹中。解压。

通过命令行,将/www/server/data/bus文件夹的所有者和组,更改成mysql

更改所有者

Chown -R mysql /www/server/data/bus

更改组

Chgrp -R mysql /www/server/data/bus

更改成功后,启动B服务器数据库,进入数据库后,如提示error: 1146: Table doesn't exist,还需将A服务器,数据文件夹中ibdata1 文件,拷贝至B服务器相应位置,同时更改相应的所有者和组权限。

至此,数据文件恢复数据库工作完成,

注1:如未改动数据文件夹所有者和组,启动数据库后,进入bus库点击相应表名会出现 ERROR #1017 :Can't find file: '/xxx.frm' 错误或ERROR #1036 Table '表名' is read only

注2:如数据库较多,可能会发现,部分数据库文件中有.frm .MYD .MYI这三种文件,部分数据库中只有.frm文件,这是因为MySQL存储表的时候,使用的默认数据库存储引擎是InnoDB,而使用InnoDB存储引擎的时候,是不生成.MYD 和.MYI文件的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值