网站首页 > 技术文章 正文
本文适用于,mysql无法启动,但数据文件未丢失的情况。
Mysql因意外情况,导致无法启动,数据库未做备份的情况下,如何将数据迁移至其他数据库中。
原数据库地址:192.168.1.100(以下简称A服务器)
新数据库地址:192.168.2.100(以下简称B服务器)
数据恢复流程:
- 进入A服务器,输入命令 cat /etc/my.cnf (如文件不在当前位置,可使用find / -name my.cnf 命令查询文件位置)
找到datadir 路径
- 通过cd /www/server/data 命令,进入数据文件夹。
当前文件夹里面就是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文件的。
猜你喜欢
- 2024-10-20 如何在 CentOS7 下改造MySQL开机启动服务?
- 2024-10-20 MySQL日志篇(mysql的日志文件在哪里)
- 2024-10-20 如何快速定位MySQL 的错误日志(Error Log)?
- 2024-10-20 小白自学MySQL笔记(一):Mac环境的安装和启动
- 2024-10-20 MySQL执行计划主要通过EXPLAIN命令来查看
- 2024-10-20 MySQL service启动脚本浅析(r12笔记第59天)
- 2024-10-20 借助shell脚本,解决MySQL服务自动停止的问题
- 2024-10-20 MySQL 还在跑任务时,突然断电,数据库崩了又好像没崩……
- 2024-10-20 超详细的mysql数据库查询缓存总结,值得收藏
- 2024-10-20 一文看懂mysql数据库本质及存储引擎innodb+myisam
- 02-21走进git时代, 你该怎么玩?_gits
- 02-21GitHub是什么?它可不仅仅是云中的Git版本控制器
- 02-21Git常用操作总结_git基本用法
- 02-21为什么互联网巨头使用Git而放弃SVN?(含核心命令与原理)
- 02-21Git 高级用法,喜欢就拿去用_git基本用法
- 02-21Git常用命令和Git团队使用规范指南
- 02-21总结几个常用的Git命令的使用方法
- 02-21Git工作原理和常用指令_git原理详解
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)