恢复数据库_把后缀.frm,.myd,myi转换为.sql导入mysql数据库
sql还原数据库步骤

sql还原数据库步骤SQL数据库还原是将备份文件恢复为原始数据库的过程。
它通常在以下情况下使用:1.数据库损坏:当数据库发生意外故障或数据损坏时,可以使用数据库还原来恢复数据库到之前的状态。
2.数据库迁移:当需要将数据库从一个服务器迁移到另一个服务器时,可以先将数据库备份,然后在新服务器上进行数据库还原。
3.数据库版本升级:当需要将数据库升级到新的版本时,可以先进行数据库备份,然后在新版本中进行数据库还原。
下面是SQL数据库还原的步骤:1. 准备备份文件:首先,需要准备一个数据库备份文件,该文件通常具有以.bak作为文件扩展名。
2. 连接到数据库:使用适当的工具(如SQL Server Management Studio)连接到数据库服务器。
3. 选择还原选项:在工具中,找到并选择数据库还原选项。
在SQL Server Management Studio中,可以通过右键单击要还原的数据库,然后选择“任务”>“还原”来打开还原向导。
4.选择备份集:在还原选项中,选择“从备份设备还原”,然后单击“添加”按钮并浏览到备份文件的位置。
选择正确的备份集(如果有多个备份文件),然后单击“确定”。
5.指定还原数据库的位置:在“选项”选项卡中,选择要还原数据库的位置。
您可以选择将数据库还原到新的位置或覆盖现有的数据库。
还可以选择还原到特定的时点,而不是最新的备份。
6.恢复模式选择:还原选项中也包含恢复模式的选择。
根据需要,可以选择完全恢复还是部分恢复。
完全恢复将还原所有数据,而部分恢复仅还原一部分数据。
7.还原数据库:通过单击“确定”或类似的按钮开始数据库还原过程。
此过程可能需要一段时间,具体取决于备份文件的大小和数据库服务器的性能。
8.验证还原:一旦还原完成,可以使用工具或SQL命令验证数据库的完整性和一致性。
可以运行一些查询来检查数据库中的表、列和数据是否与预期的一样。
9.更新服务器配置:如果还原的数据库使用不同的服务器配置(如服务器名称、端口、身份验证等),则需要更新应用程序或网站的配置信息。
sql数据库还原操作说明

sql数据库还原操作说明
SQL数据库的还原操作主要包括以下步骤:
1. 备份文件准备:确保已有一个备份文件,该文件通常以.bak或.trn为后缀。
2. 连接数据库:打开SQL Server Management Studio,并连接到要还原
数据的数据库。
3. 恢复数据库:在“对象资源管理器”中,右键单击要还原的数据库,选择“任务”→“还原”→“数据库”。
4. 在“还原数据库”对话框中,选择“从设备”。
5. 单击“添加”按钮,选择备份文件,然后单击“确定”。
6. 如果需要指定还原哪个备份内容,在“备份号”下拉列表中选择要恢复的备份,并在“选项”中将“移至”中的物理文件名修改为数据文件要存放的文件名。
7. 如果要还原的数据库已经存在,选择“在现有数据库上还原”,然后确定。
或者也可以使用SQL语句进行数据库还原,如:restore database 数据库from disk='c:你的备份文件'。
注意:这些步骤和代码仅是示例,具体的操作步骤和代码可能因您的系统和数据库的具体情况而有所不同。
在执行任何还原操作之前,建议先在测试环境中进行验证,并确保已做好充分的备份。
MySQL中的备份恢复与数据迁移工具使用

MySQL中的备份恢复与数据迁移工具使用MySQL作为一种常见的关系型数据库管理系统,在各类Web应用和企业级应用中广泛使用。
然而,随着数据量的增长和应用的不断演变,对于数据的备份恢复和迁移变得越来越重要。
本文将介绍MySQL中常用的备份恢复和数据迁移工具的使用方法,以帮助读者更好地处理这些问题。
一、MySQL备份恢复工具1. mysqldumpmysqldump是MySQL自带的备份工具,能够将数据库中的数据和结构导出为SQL脚本文件。
使用mysqldump可以实现全量备份和增量备份,以及备份恢复。
全量备份可以使用以下命令进行:```shellmysqldump -u username -p database_name > backup.sql```其中,-u参数指定用户名,-p参数用于输入密码,database_name指定要备份的数据库名称,> backup.sql表示将备份结果输出到一个名为backup.sql的文件中。
增量备份可以结合使用--single-transaction和--flush-logs选项,保证备份的一致性和完整性。
备份恢复则可以使用以下命令进行:```shellmysql -u username -p database_name < backup.sql```其中,-u参数指定用户名,-p参数用于输入密码,database_name指定要恢复到的数据库名称,< backup.sql表示从备份文件backup.sql中恢复数据。
2. XtrabackupXtrabackup是一个开源的MySQL物理备份工具,通过对InnoDB存储引擎的数据文件进行直接备份,可以提供更快速的备份和恢复速度。
使用Xtrabackup进行全量备份可以使用以下命令:```shellxtrabackup --backup --target-dir=/path/to/backup```其中,--backup参数表示进行备份操作,--target-dir指定备份文件的保存路径。
利用frm 和 idb文件批量还原数据

利用frm 和idb文件批量还原数据最近碰到一个问题,一个平时不怎么用数据库在一次搬机器过程中弄挂了,然后在重启过程中不小心把ibdata给弄坏了。
于是无奈只能通过frm和idb文件来做数据恢复。
因为是整个库的数据有问题,因此在这过程中写了一些脚本来帮助恢复。
下面是这次操作的过程:首先说明,本方案只适用于innodb_file_per_table = 1 这种情况下的做数据恢复。
下面是用来说明恢复案例的环境:原数据库数据文件的位置: /data/dbdata库名称: user新库的用户名、密码:root/111111新库的数据文件位置:/data/newdata1、首先做好frm和idb文件的备份,并准备一个全新的MySQL环境,至于为什么要全新的,稍后就会明白。
2、通过frm文件导出表结构如果你本身就有创建数据的schema的sql脚本,这一步可以略过。
a、首先创建user库;> create database user;b、接下来需要在user库创建原库的frm对应的表,这一步可通过create_init_table.sh【https:///iamxhu/devops_tools/blob/master/mysql/recovery/create_init_sql.sh】生成创建表的脚本。
具体使用方法参加文件中的说明。
$ ./create_init_table.sh /data/dbdata/user root 111111 user运行上面的脚本后,会生成三个文件:create_tmp_table.sql,discard_tablespace.sh,import_tablespace.sh。
在这一步只需要将create_tmp_table.sql导入到mysql中。
> mysql -uroot -p user < create_tmp_table.sql这样表就都创建好了。
使用 ibdata 和 frm 文件恢复 MySQL 数据库

一.使用ibdata 和frm 文件恢复MySQL 数据库因为磁盘空间不足,我的一个虚拟机服务器崩溃了。
结果数据库服务器进程无法启动,数据也就无法导出。
只能想办法从数据库原始文件ibdata 和frm 文件中恢复数据库。
因为没有经验,好不容易才找到了恢复方法。
特此记录,以备后用。
磁盘空间不足之后,mysqld 进程无法启动,提示“Can't connect tolocal MySQL server through socket '/var/lib/mysql/mysql.sock' (2)”。
这真是让人无比头大,数据库根本连接不上。
1. 保存原始数据库文件好在数据库原始文件还在。
在我的系统环境和配置情况下,这些文件位于/var/lib/mysql/文件夹下面。
假设数据库名是test,则这些文件表现为:--mysql|--test|--1.frm|--2.frm|...|--mysql|...|--ib_logfile0|--ib_logfile1|--ibdata1|...这些就是原始数据库文件,可以用来恢复数据库。
将这些文件额外保存一份,以防万一。
2. 恢复方法我的原始虚拟机完全没有磁盘空间而无法启动数据库服务器进程。
虽然试着删除一些不需要的文件,但是数据库却始终无法连接。
于是我新建了一个几乎一样的虚拟机(当然磁盘加大了),试图将这些数据库文件导入并恢复数据库。
在经历了很多错误之后,终于找到了正确的方法:1.安装完成新服务器之后,通过命令行新建了与原来一样的数据库:数据库名称、用户名、密码都一样。
如果有多个数据库需要恢复,就都给建好。
(跟配置新服务器一样,参见安装和配置MYSQL 数据库服务器。
)2.停止mysqld 进程service mysqldstop3.将备份的原始数据库文件中的所有.frm文件(保持原来的目录结构)和ibdata1文件复制到新服务器的数据库文件目录中(如果新服务器操作系统和配置环境一样,那么目录结构也一样),其它文件不要。
.frm文件怎么导入到数据库

.frm⽂件怎么导⼊到数据库如题想搞个私服游戏,但是数据库⽂件按⽂档的操作⽅法⾏不通。
只能⾃⾏导⼊。
其实.frm⽂件就是mysql表结构⽂件,你拷贝data那⼀块的⽂件到你电脑安装的mysql的data⽂件下就⾏了。
⼀、⾸先查找你mysql安装的位置select @@basedir as basePath from dual当然mysql5.7不在这个路径下,在安装盘符找ProgramData这个⽂件我的实际数据就是这个地址 C:\ProgramData\MySQL\MySQL Server 5.7\Data⼆、拷贝数据可以看到data⽂件夹⾥⾯,⼀个⽂件对应⼀个数据库,其他都是⽇志等配置⽂件。
把你的数据⽂件放进去即可。
但是结果很遗憾,导⼊的表数据是空的,且查询错误。
原因是版本不同,我装的5.7⽽原⽂件是5.5三、替换⽂件上⾯刷新数据库没有数据,是因为少了ib_logfile0,ib_logfile1,ibdata1这⼏个⽂件。
①:把原来数据库的ib_logfile0,ib_logfile1,ibdata1这⼏个⽂件备份到⼀个⽂件夹。
②:关闭mysql服务,把当前数据下的这⼏个⽂件删掉,⽤要拷贝的数据这三个⽂件替换。
③:打开mysql服务,登录刷新,发现有数据了。
把这些数据以.sql⽂件导出,这样数据就拿到了。
四、还原同上,关闭mysql服务,把原来的ib_logfile0,ib_logfile1,ibdata1这⼏个⽂件还原回去,再启动mysql服务。
此时你原来导⼊的那⼏个表有没数据了,删掉库名,重新导⼊你的.sql⽂件就好了。
因此想要别⼈的数据,直接拷贝这个⽂件就⾏了。
当然犯罪的事情不能⼲啊!。
如何将frm文件导入MySql数据库

如何将frm⽂件导⼊MySql数据库
只要在mysql的安装⽂件中找到data⽂件夹,然后在⾥⾯建⽴⼀个⽂件夹,⽐如test。
这个test其实就对应着数据库的名称,所以,你想要起什么样的数据库名称就把⽂件夹起什么名字。
然后把.frm⽂件导进去。
注意还要在data⽬录下加⼊ib_logfile0,ib_logfile1,ibdata1这⼏个⽂件。
要不然在mysql⾥只能找到表名(其实⼀个.frm⽂件就是对应的数据库中的⼀个表。
)
⽽不能对其进⾏操作。
说明:
⽐如你原来的mysql中有⼀些数据库了。
可以先把原来的data改名字备份在同⼀⽬录下。
(可能要改名字系统会提⽰有另⼀程序在使⽤这个⽂件,这个时候可以到控制⾯板的服务⾥⾯,把mysql的服务先关掉,等改完名字,把东西都导进去后再开服务)
然后另建⼀个data,把在⾥⾯建好数据库名把.frm导进去。
================================================================================
2007年9⽉23⽇再整理:
停⽌服务可以通过管理⼯具⾥⾯的服务来停,或者⽤cmd 打开dos界⾯输⼊net stop mysql,启动⽤net start mysql;
只要⽤旧的ibdata1覆盖原来的,再把相关的数据库copy过去,然后重新启动数据库,
就ok了,进⼊以后要是对表不能操作可能是数据表已经损坏了.
(如果不⾏报1146错,建议重启⼀下机器在看看)
ib_logfile0,ib_logfile1好象也可以不⽤覆盖,不然有时候mysql数据库启动不了了,报1067错误。
MySQL .frm .myd .myi 文件 及数据库本地移植

今天在实际开发中对于MySQL数据库进行移植发生的问题来说下. 开始把本地data中的数据库文件拷贝到另一台机子上Test, 执行show tables ; 可以看到数据库表,但是对表进行任何操作都报错: 表不存在, 原以为Mysql的数据库文件(.frm)Copy->stick到本地安装MySQLDB目录的data文件夹下就可以.事实不是我们想的那样. 对于MySQL数据库的移植,我们能看到的只是它生成的表结构以就是说以 .frm为后缀名的文件.
实际上, .frm .myd .myi都是Mysql存储数据的文件, 代表MySQL 数据库表的结构/数据和索引文件,我们默认创建数据库和表时只生成数据库表结构的文件.frm. 移植数据库时,必须存在三种格式的数
据库表文件,才能正常使用该DB, 当我们在本地创建出数据库还有该数据库域下的表时, 在data文件夹下只存在数据库的字符集描述文件和数据库表结构文件,若需要移植数据库, 应该在该数据库域下, 已就是说use targetDatabase; 后执行以下语句生成其他两种格式的数据存储文件,
alter table targetTableName ENGINE = MYISAM ROW_FORMAT = COMPACT;
对每个表都执行以上语句后, 在看看data文件下的数据库表,其他两
种格式都生成出来了.然后在移植, 就不会存在文章开始说的数据库表不存在的错误.。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
恢复数据库—把.frm,.myd,myi转换为.sql导入数据库
以前的blog服务器瘫痪后终于从客服那里拿回了数据,但是空间商给备份的数据库是一堆.frm,.myd,.myi文件,而现在恢复数据库要求导入.sql文件,我对数据库一窍不通,这可咋整。
没办法,又得求助Google,倒腾…磨叽…倒腾……终于给解决了。
先说说这几种文件是干什么的,*.frm是描述了表的结构,*.myd保存了表的数据记录,*.myi则是表的索引。
现在将.frm,.myd,myi转换为.sql有两种方法:
1、把这些乱七八糟的文件一并复制到你的数据库的data下的数据库文件夹,直接就可以使用,无需转换为sql格式。
前提是mysql的版本一致,字体一致。
此方法简单快捷但不是没个人都能做到。
其实根本就无法做到,除非你是在本地测试或者你是个人独霸一台服务器。
像我这种用虚拟主机的,空间商一般是不会把数据库目录都给你让你去瞎折腾的,所以此方法基本无用,弃之。
2、在本地安装MySQL数据库,将.frm,.myd,myi转换为.sql,再导入即可。
这种方法当然会麻烦一些了,首先得会安装MySQL才行。
反正我不大会装,设置也不懂,干脆把安装MySQL的方法也贴在这儿吧,图我就不贴了,只贴文字和每一步要选择的选项,安装的MySQL为当前最新版本5.1.44。
安装MySQL:
MySQL请自行下载,大概一百零几兆,下载后双击打开,出来欢迎安装界面,点Next,出来安装选项,有三种:Typical、Complete、Custom,默认是Typical,建议改成Custom,因为Typical模式不允许改变安装路径,只能安装在C盘(我介绍的就是Custom的安装方法)。
点Next,到这一步需要选择要安装的组件和安装路径,组件就用默认的,安装路径自己选择,在根目录下最好,因为后面要用到Dos命令,这样方便。
注意:安装mysql的路径中,不能含有中文!一切就绪后点Install,安装很快,完成后是介绍MySQL公司的界面,Next,Next,之后是Setup Wizard界面。
帮助用户设置MySQL的,别以为装完了就没事了。
这里有两个复选框,Configure the MySQL Server Now和Register the MySQL Server Now,把第二个对勾取消掉,它是让你注册的,没什么用。
点Finish,下面开始配置MySQL。
配置MySQL:
又是欢迎界面,Next,看到两个选项,选择Detailed Configuration,点Next继续,下面这个选项是选择mysql应用于何种类型,第一种是开发服务器,将只用尽量少的内存,第二种是普通WEB服务器,将使用中等数量内存,最后一种是这台服务器上面只跑mysql数据库,将占用全部的内存,我选择第二种,你可根据自己的需求,选择其他选项,点Next继续,下面是选择数据库用途,第一种是多功能用途,将把数据库优化成很好的innodb存储类型和高效率的myisam存储类型,第二种是只用于事务处理类型,最好的优化innodb,但同时也支持myisam,最后一种是非事务处理类型,适合于简单的应用,只有不支持事务的myisam类型是被支持的。
一般选择第一种多功能的,Next,下面是选择InnodDB的数据存放位置,一般默认好了,不需要改动,Next继续,下面是选择mysql允许的最大连接数,第一种是最大20个连接并发数,第二种是最大500个并发连接数,最后一种是自定义,你可以根据自己的需要选择,我是直接Next下一步,下面是选择数据库监听的端口,一般
默认是3306,如果改成其他端口,以后连接数据库的时候都要记住修改的端口,否则不能连接mysql数据库,比较麻烦,这里不做修改,用mysq的默认端口:3306,直接Next,这一步设置mysql的默认编码,默认是latin1,我们选第三个选项来手动选择。
我们可以根据需要,把它改成gb2312,gbk,或utf-8等等。
这要看你需要什么样编码的数据库,空间商给我的一堆文件中有个文件db.opt,用文本编辑器打开它就可以看到它的原始编码,是latin1,所以这里我不需要做修改,但是大家用的时候一定要搞清楚你以前使用的数据库是何种编码,这里必须匹配,若不匹配,使用时可能出现乱码。
Next继续,这一步是是否要把mysql设置成windows的服务,一般选择设成服务,这样以后就可以通过服务中启动和关闭mysql数据库了。
推荐:下面的复选框也勾选上,这样,在cmd模式下,不必非到mysql的bin目录下执行命令。
Next,这一步是设置mysql的超级用户密码,这个超级用户非常重要,对mysql拥有全部的权限,请设置好并牢记超级用户的密码,下面有个复选框是选择是否允许远程机器用root用户连接到你的mysql服务器上面,我没这个需求,不动它。
Next,配置完毕,直接点Execute执行配置。
完成后点Finish,配置完毕。
使用MySQL:
在开始菜单中打开MySQL,你没看错,它就是dos界面,打开后要求输入密码,直接输入我们刚才设置的超级密码,进入,MySQL已经准备接收指令了。
哎呀,坏了,MySQL命令我一个都不会吖,有事找Google吖,又是一番搜索。
先要建立数据库,用这个命令:create database dbname; dbname是数据库名称,不要丢了最后的分号,有了分号才是一个完整的MySQL命令。
执行后我们就建立了一个名叫dbname的数据库了,下面我们去找MySQL创建的这个数据库到底在哪个目录,找到它后把我们那一堆文件复制进去,就可以进行转换工作了。
按照网上的说法,我建立那个名为dbname的数据库时系统就建立了个以数据库名命名的文件夹,这个文件夹位于MySQL安装目录下的data文件夹下,我找了半天根本没有,甚至MySQL安装目录下根本就没有data这个文件夹,再次google,原来是这样,MySQL 安装路径下面有个my.ini,用记事本打开查找datadir,后面有路径,我的是C:/Documents and Settings/All Users/Application Data/MySQL/MySQL Server
5.1/Data/
到这个路径下面就能看到dbname文件夹了,把那堆.frm,.myd,myi都复制进来,然后在命令提示符下进入MySQL安装目录下的bin目录,输入mysqldump -uroot -p dbname > dbname.sql ,执行,注意:dbname就是我前面创建的数据库名字。
完后你就会在bin目录下发现一个dbname.sql了,怎样,简单吧。
但是我在用的时候发现命令提示符下用cd 命令已经不能进入bin目录了,甚至不能更改当前目录,不知为何,难道是因为装了MySQL?双击mysqldump.exe,cmd窗口一闪而逝,命令没法输入吖,咋办,又得想招,还是用批处理吧,简单省事。
在bin目录里建立个txt文件,把上面那条命令复制进去,另存为,保存类型选所有文件,上面的文件名随便取,但是要加上扩展名.bat,例如“新建文本文件.bat”,保存。
双击刚生成的这个bat文件,搞定。
(有的同学不会使用cd命令,google一下便知,例如我输入cd e:\aaa,执行后当前目录就是e:\aaa了)
至此,转换任务顺利完成。