恢复数据库_把后缀.frm,.myd,myi转换为.sql导入mysql数据库
sql还原数据库步骤
![sql还原数据库步骤](https://img.taocdn.com/s3/m/ff4eac7832687e21af45b307e87101f69e31fb11.png)
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数据库还原操作说明](https://img.taocdn.com/s3/m/300444505e0e7cd184254b35eefdc8d376ee140d.png)
sql数据库还原操作说明
SQL数据库的还原操作主要包括以下步骤:
1. 备份文件准备:确保已有一个备份文件,该文件通常以.bak或.trn为后缀。
2. 连接数据库:打开SQL Server Management Studio,并连接到要还原
数据的数据库。
3. 恢复数据库:在“对象资源管理器”中,右键单击要还原的数据库,选择“任务”→“还原”→“数据库”。
4. 在“还原数据库”对话框中,选择“从设备”。
5. 单击“添加”按钮,选择备份文件,然后单击“确定”。
6. 如果需要指定还原哪个备份内容,在“备份号”下拉列表中选择要恢复的备份,并在“选项”中将“移至”中的物理文件名修改为数据文件要存放的文件名。
7. 如果要还原的数据库已经存在,选择“在现有数据库上还原”,然后确定。
或者也可以使用SQL语句进行数据库还原,如:restore database 数据库from disk='c:你的备份文件'。
注意:这些步骤和代码仅是示例,具体的操作步骤和代码可能因您的系统和数据库的具体情况而有所不同。
在执行任何还原操作之前,建议先在测试环境中进行验证,并确保已做好充分的备份。
MySQL中的备份恢复与数据迁移工具使用
![MySQL中的备份恢复与数据迁移工具使用](https://img.taocdn.com/s3/m/eec37b2a4531b90d6c85ec3a87c24028905f8544.png)
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文件批量还原数据](https://img.taocdn.com/s3/m/ee47393fee06eff9aef8078c.png)
利用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 数据库](https://img.taocdn.com/s3/m/023951c2b9f3f90f76c61b54.png)
一.使用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文件怎么导入到数据库](https://img.taocdn.com/s3/m/ff549d68f4335a8102d276a20029bd64783e62d8.png)
.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数据库](https://img.taocdn.com/s3/m/a7947b1dbb1aa8114431b90d6c85ec3a87c28b02.png)
如何将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 .frm .myd .myi 文件 及数据库本地移植](https://img.taocdn.com/s3/m/657be4106edb6f1aff001f4e.png)
今天在实际开发中对于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文件下的数据库表,其他两
种格式都生成出来了.然后在移植, 就不会存在文章开始说的数据库表不存在的错误.。
恢复数据库_把后缀.frm,.myd,myi转换为.sql导入mysql数据库
![恢复数据库_把后缀.frm,.myd,myi转换为.sql导入mysql数据库](https://img.taocdn.com/s3/m/378c8af7846a561252d380eb6294dd88d0d23d98.png)
恢复数据库_把后缀.frm,.myd,myi转换为.sql导入mysql数据库恢复数据库—把.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数据库下.frm.MYD.MYI损坏恢复操作
![MySQL数据库下.frm.MYD.MYI损坏恢复操作](https://img.taocdn.com/s3/m/4aa91a9382d049649b6648d7c1c708a1284a0a9e.png)
将数据库内容物理文件直接导入到mysql\data下,每只表各3个文件,依次分别为:.frm .MYD .MYI,data下的文件夹名就是数据库名首先我第一想到的是去网上搜索,寻找类似的工具,试图通过工具来恢复已损坏的文件,于是我在GOOGLE上查找,找到一款名为MySQLRecovery 的工具,安装后我用其进行恢复,只可惜效果太不理想,几十M大的数据文件,恢复之后它提示我竟然只有几十K,令我吐血...MySQL数据目录不是太难理解的。
每一个数据库对应一个子目录,每个子目录中包含了对应于这个数据库中的数据表的文件。
每一个数据表对应三个文件,它们和表名相同,但是具有不同的扩展名。
tblName.frm文件是表的定义,它保存了表中包含的数据列的内容和类型。
tblName.MYD文件包含了表中的数据。
tblName.MYI文件包含了表的索引(例如,它可能包含lookup表以帮助提高对表的主键列的查询)。
要检查一个表的错误,只需要运行myisamchk(在MySQL的bin目录下)并提供文件的位置和表名,或者是表的索引文件名:pma.co% myisamchk /usr/local/mysql/var/dbName/tblName% myisamchk /usr/local/mysql/var/dbName/tblName.MYI上面的两个命令都可以执行对指定表的检查。
要检查数据库中所有的表,可以使用通配符:% myisamchk /usr/local/mysql/var/dbName/*.MYI要检查所有数据库中的所有表,可以使用两个通配符:% myisamchk /usr/local/mysql/var/*/*.MYI如果不带任何选项,myisamchk将对表文件执行普通的检查。
如果你对一个表有怀疑,但是普通的检查不能发现任何错误,你可以执行更彻底的检查(但是也更慢!),这需要使用--extend-check选项:% myisamchk --extend-check /path/to/tblName对错误的检查是没有破坏性的,这意味着你不必担心执行对你的数据文件的检查会使已经存在的问题变得更糟。
如何恢复Mysql数据库
![如何恢复Mysql数据库](https://img.taocdn.com/s3/m/867bb9e80342a8956bec0975f46527d3240ca639.png)
如何恢复Mysql数据库这⾥说的MySql恢复数据库,是指没有通过正常备份的情况下,通过Mysql保存的数据⽂件如何恢复数据库。
由于在⼀台测试机器上打算重新安装Mysql数据库,由于简单粗暴的直接卸载了,没有备份公司Discuz和Redmine使⽤的Mysql数据库,过程可想的悲惨。
还好的是只是卸载掉了Mysql的程序,所有的数据⽂件还是存在的。
下⾯是在恢复数据库的过程1. Discuz数据库Discuz数据库的恢复⾮常顺利,在安装好新版本的Mysql后,直接将原来的数据库⽂件copy到新的数据⽬录中,重新启动mysql, 就能看到恢复的数据库了2. Redmine数据库本打算直接使⽤上⾯的经验,也能看到所有的表,但是就是执⾏查询的时候,总是报错"表不存在".后来查了⼀些资料,发现,原因应该是Discuz和Redmine使⽤的Mysql引擎不⼀样导致的。
Discuz使⽤的是MyISAM, ⽽Redmine使⽤的是InnoDB.解决的办法是,除了要copy数据⽬录外,还要记得覆盖ibdata1⽂件。
以表”Table”为例: 如类型是MyISAM, 数据⽂件则以”Table.frm””Table.MYD””Table.MYI””三个⽂件存储于”/data/databasename/”⽬录中.如类型是InnoDB,数据⽂件则存储在”innodb_data_home_dir/″中的ibdata1⽂件中(⼀般情况),结构⽂件存在于table_name.frm中. MySQL的数据库⽂件直接复制便可以使⽤,但是那是指“MyISAM”类型的表。
⽽使⽤MySQL-Front直接创建表,默认是“InnoDB”类型,这种类型的⼀个表在磁盘上只对应⼀个“*.frm”⽂件,不像MyISAM那样还“*.MYD,*.MYI”⽂件。
MyISAM类型的表直接拷到另⼀个数据库就可以直接使⽤,但是InnoDB类型的表却不⾏。
mysql利用frm和idb文件恢复数据库
![mysql利用frm和idb文件恢复数据库](https://img.taocdn.com/s3/m/056cc2d56e1aff00bed5b9f3f90f76c661374cdd.png)
mysql利⽤frm和idb⽂件恢复数据库⼀、将data⽬录下的对应的数据库⽬录复制备份到另外⼀个地⽅[root@orderer /]# mkdir /home/data_bak[root@orderer /]# cp -r /home/mysql-5.7.26/data/hl_central_sms_deduction/ /home/data_bak/[root@orderer /]#⼆、连接MYSQL,删除原来的数据库,新建⼀个跟同名的数据库mysql> create database hl_central_sms_deduction DEFAULT CHARSET utf8;Query OK, 1 row affected (0.01 sec)三、利⽤MySQL Utilitie⼯具提供的mysqlfrm命令,导出数据库表结构SQL⽂件安装MySQL Utilitie⼯具,参考https:///sky-cheng/p/12218112.html[root@orderer hl_central_sms_deduction]# mysqlfrm --diagnostic sms_deduction_log_20191201.frm# WARNING: Cannot generate character set or collation names without the --server option.# CAUTION: The diagnostic mode is a best-effort parse of the .frm file. As such, it may not identify all of the components of the table correctly. This is especially true for damaged files. It will also not read the default values for the columns and t # Reading .frm file for sms_deduction_log_20191201.frm:# The .frm file is a TABLE.# CREATE TABLE Statement:CREATE TABLE `sms_deduction_log_20191201` (`id` int(10) unsigned NOT NULL AUTO_INCREMENT,`phone` varchar(60) DEFAULT NULL,`epid` varchar(60) DEFAULT NULL,`message` varchar(3000) DEFAULT NULL,`subcode` varchar(60) DEFAULT NULL,`channel_id` varchar(150) DEFAULT NULL,`push_url` varchar(3000) DEFAULT NULL,`db_ip` varchar(150) DEFAULT NULL,`db_name` varchar(150) DEFAULT NULL,`created` timestamp DEFAULT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,`sms_len` int(11) DEFAULT NULL,`stype` char(4) CHARACTER SET <UNKNOWN> NOT NULL,`dtype` varchar(80) CHARACTER SET <UNKNOWN> NOT NULL,`msg_template` varchar(3000) DEFAULT NULL,`province` varchar(150) DEFAULT NULL,`qxt_fast_num` int(1) DEFAULT NULL,`link_id` varchar(150) DEFAULT NULL,`report_code` varchar(150) DEFAULT NULL,PRIMARY KEY `PRIMARY` (`id`),KEY `pk_sms_deduction_log_20191201_phone` (`phone`,`epid`,`created`) USING BTREE) ENGINE=InnoDB;#...done.将SQL语句粘贴到客户端执⾏,报错`stype` char(4) CHARACTER SET <UNKNOWN> NOT NULL,`dtype` varchar(80) CHARACTER SET <UNKNOWN> NOT NULL,将这两句修改为`stype` char(4) NOT NULL,`dtype` varchar(80) NOT NULL,再执⾏上⾯的建表语句,成功。
把.frm,.myd,myi转换为.sql导入数据库
![把.frm,.myd,myi转换为.sql导入数据库](https://img.taocdn.com/s3/m/d4073e20eefdc8d376ee3232.png)
恢复数据库—把.frm,.myd,myi转换为.sql导入数据库1、文件的作用:
*.frm是描述了表的结构;
*.myd保存了表的数据记录;
*.myi则是表的索引。
2、在本地安装MySQL数据库,将.frm,.myd,myi转换为.sql,再导入即可。
在开始菜单中打开MySQL,在dos界面使用命令创建数据库:create database dbname; dbname是数据库名称,千万不要丢掉最后的分号。
2、用记事本打开Mysql安装目录下的my.ini文件,查找datadir,在后面的路径
中即可查找到创建的dbname文件夹,然后把所有的.frm,.myd,myi都复制进来。
打开【计算机】,按“Alt”键,在右上角单击【工具】——>【文件夹选项】——>【查看】——>【高级设置】中,将“隐藏受保护的操作系统文件(推荐)”设置为不勾选,“显示隐藏的文件、文件夹和驱动器”设置为勾选——>【应用】——>【确定】,即可查找到dbname文件夹。
3、【开始】——>【运行】——.>【cmd】,通过dos命令进入MySQL的安装目录下的bin目录。
输入mysqldump -uroot -p dbname > dbname.sql ,执行,注意:dbname就是前面创建的数据库名字。
之后就会在bin目录下发现一个dbname.sql
4、使用MySQL的辅助工具navicat运行生成的sql文件,即可查看数据库表结构。
mysql 数据还原方法 -回复
![mysql 数据还原方法 -回复](https://img.taocdn.com/s3/m/91db7d6a443610661ed9ad51f01dc281e43a566c.png)
mysql 数据还原方法-回复MySQL 数据还原方法MySQL 是一种开源的关系型数据库管理系统,广泛用于各种规模的应用程序和网站。
在使用MySQL 数据库时,我们经常需要进行一些数据备份和还原的操作,以确保数据的安全性和可靠性。
本文将一步一步回答关于MySQL 数据还原方法的问题,并介绍具体的步骤和注意事项。
什么是数据还原?在数据库中,数据还原是将备份的数据重新还原到数据库中的过程。
数据还原是一种恢复数据的方法,当数据库出现故障、数据丢失或人为操作错误时,通过还原备份的数据可以恢复原始的数据库状态。
MySQL 数据还原的方法有哪些?MySQL 数据还原的方法包括物理备份和逻辑备份两种方式。
1. 物理备份还原:物理备份还原是通过将数据库的物理文件直接复制到另一个位置或服务器上来实现。
这种方法简单快速,适用于大型数据库的还原操作。
物理备份还原的步骤如下:a. 停止MySQL 服务:在进行物理备份还原之前,需要停止MySQL服务,以确保数据文件不会被修改。
b. 备份数据文件:将MySQL 的数据文件(通常是以 .frm、.ibd或 .myd、.myi 后缀结尾的文件)复制到指定的位置或服务器上。
c. 还原数据文件:将备份的数据文件复制到MySQL 的数据目录中。
d. 启动MySQL 服务:完成数据文件的复制后,启动MySQL 服务即可完成物理备份还原操作。
2. 逻辑备份还原:逻辑备份还原是通过导出和导入数据库的逻辑文件来实现。
逻辑备份还原的步骤如下:a. 导出数据库:使用MySQL 的导出工具(如mysqldump 命令)将数据库导出为SQL 文件或压缩文件。
b. 创建空白数据库:在还原数据之前,需要先创建一个空白的数据库。
c. 导入数据:将导出的SQL 文件或压缩文件导入到空白数据库中。
使用物理备份还原的步骤下面将详细介绍使用物理备份还原的具体步骤。
1. 停止MySQL 服务在进行物理备份还原之前,需要停止MySQL 服务以确保数据文件不会被修改。
使用MySQL进行故障恢复和数据转移
![使用MySQL进行故障恢复和数据转移](https://img.taocdn.com/s3/m/da955fe932d4b14e852458fb770bf78a65293a09.png)
使用MySQL进行故障恢复和数据转移引言MySQL是一种广泛应用于Web应用程序的开源关系型数据库管理系统。
由于其稳定性和可靠性,许多企业和个人都选择使用MySQL作为其首选数据库解决方案。
然而,即使是最可靠的系统也无法完全避免出现故障或数据转移的需求。
在本文中,我们将探讨如何使用MySQL进行故障恢复和数据转移的方法和技巧。
一、故障恢复1. 备份与恢复数据备份是一项重要的措施,可以在数据库发生故障时快速恢复数据。
MySQL提供了多种备份方法,最常用的是使用mysqldump工具进行备份。
我们可以通过以下步骤使用mysqldump进行备份和恢复。
首先,我们可以使用如下命令创建数据库的备份文件:```mysqldump -u 用户名 -p 密码数据库名 > 备份文件.sql```这将导出数据库中的所有表结构和数据,并将其保存在一个.sql文件中。
然后,如果数据库发生故障,我们可以使用以下命令进行数据恢复:```mysql -u 用户名 -p 密码数据库名 < 备份文件.sql```这将执行备份文件中的SQL命令,将数据重新导入到数据库中。
2. 错误修复在使用MySQL时,可能会遇到各种错误,如磁盘空间不足、表崩溃等。
MySQL提供了一些内置工具和命令,可以帮助我们修复这些错误。
例如,如果我们在使用某个表时遇到崩溃的情况,可以使用REPAIR TABLE 命令修复该表:```REPAIR TABLE 表名;```此命令将自动检测并尝试修复表中的错误。
3. 日志和监控MySQL的日志和监控功能对于故障诊断和恢复非常有帮助。
可以通过以下步骤启用和使用这些功能。
首先,打开MySQL的配置文件(通常是/etc/f或/etc/mysql/f),找到并修改以下行:```log_error = /var/log/mysql/error.log```将此设置为你希望的错误日志文件位置。
然后,重新启动MySQL服务:```sudo service mysql restart现在,MySQL将记录错误和警告信息到指定的日志文件中。
通过.frm和.ibd恢复mysql数据
![通过.frm和.ibd恢复mysql数据](https://img.taocdn.com/s3/m/6570bd70cbaedd3383c4bb4cf7ec4afe05a1b158.png)
通过.frm和.ibd恢复mysql数据.frm⽂件:保存了每个表的元数据,包括表结构的定义等;.ibd⽂件:InnoDB引擎开启了独⽴表空间(my.ini中配置innodb_file_per_table = 1)产⽣的存放该表的数据和索引的⽂件。
1、安装相同版本的mysql;找回表结构2、找回表结构(若有表结构,直接导⼊表即可)建⽴同名的表(InnoDB),不知道列数的话随意⼀个字段即可(如果字段个数不⼀致会报错,去⽇志⽂件中查看有列数重复这些步骤)关闭mysql服务⽤需要恢复的.frm⽂件覆盖新⽣成的.frm⽂件。
修改my.ini配置innodb_force_recovery = 6进⼊恢复模式(只读)。
启动mysql服务。
desc tble_name或者show create table tbl_name获取创建表结构语句。
(直接查看表设计字段会导致数据库异常)复制建表sql,删除表(不能直接删.frm和.ibd会导致新建时报已存在,如果直接删除⽂件,需要将frm⽂件拷贝回来,再drop表),执⾏sql创建表结构。
(这个步骤要把innodb_force_recovery = 6注解掉或者回复为0,不然提⽰只读)。
这⾥会出现启动后没有表结构,这是需要查看mysql的⽇志⽂件找到⽇志⽂件位置:show variables like'%error%'这⾥的.是相对于mysql的,windows可以根据快捷⽅式找到mysql位置然后再找.err错误⽂件找到报错信息为2018-12-18T08:52:30.314230Z 2 [Warning] InnoDB: Table bookkeeping/concategory contains 1 user defined columns inInnoDB, but 3 columns in MySQL.意思是新建的有1列,但是复制过来的frm⽂件中含有3列。
MySQL利用frm文件和ibd文件恢复表数据
![MySQL利用frm文件和ibd文件恢复表数据](https://img.taocdn.com/s3/m/fc45b012bfd5b9f3f90f76c66137ee06eff94e20.png)
MySQL利⽤frm⽂件和ibd⽂件恢复表数据⽬录frm⽂件和ibd⽂件简介frm⽂件恢复表结构ibd⽂件恢复表数据简单总结⼀下frm⽂件和ibd⽂件简介在MySQL中,如果我们使⽤了默认的存储引擎innodb创建⼀张表,那么在⽂件夹下⾯就会出现表名.frm和表名.ibd两个⽂件,如果我们使⽤的是Myisam存储引擎,那么就会出现三个⽂件,这⾥我们给出例⼦:[root@ /data/yeyz]#lltotal 580-rw-rw---- 1 mysql mysql 8586 Apr 3 17:44 a.frm-rw-rw---- 1 mysql mysql 0 Apr 3 17:44 a.MYD-rw-rw---- 1 mysql mysql 1024 Apr 3 17:44 a.MYI-rw-rw---- 1 mysql mysql 8586 Apr 3 17:44 b.frm-rw-rw---- 1 mysql mysql 98304 Apr 3 17:45 b.ibd-rw-rw---- 1 mysql mysql 61 Nov 23 09:54 db.opt-rw-rw---- 1 mysql mysql 8556 Apr 29 21:37 tbl_test_2.frm-rw-rw---- 1 mysql mysql 98304 Apr 29 21:37 tbl_test_2.ibd-rw-rw---- 1 mysql mysql 8556 Apr 29 21:33 tbl_test.frm-rw-rw---- 1 mysql mysql 98304 Apr 29 21:33 tbl_test.ibd-rw-rw---- 1 mysql mysql 8614 Apr 29 21:40 test.frm-rw-rw---- 1 mysql mysql 98304 Apr 29 21:43 test.ibd-rw-rw---- 1 mysql mysql 8666 Apr 2 15:13 unstandard_ins.frm-rw-rw---- 1 mysql mysql 98304 Apr 3 11:46 unstandard_ins.ibd-rw-rw---- 1 mysql mysql 8586 Apr 3 17:44 yeyz.frm-rw-rw---- 1 mysql mysql 28 Apr 3 17:44 yeyz.MYD-rw-rw---- 1 mysql mysql 2048 Apr 3 17:44 yeyz.MYI其中ibd⽂件是innodb的表数据⽂件,⽽frm⽂件是innodb的表结构⽂件,mysiam存储引擎的表中,frm是表结构,MYI⽂件是索引⽂件,⽽MYD⽂件是数据⽂件,从这⾥也可以看出,innodb存储引擎的索引和数据是在⼀起的,⽽Myisam存储引擎索引和数据是分开的。
如何使用MySQL进行导入导出数据时的数据转换
![如何使用MySQL进行导入导出数据时的数据转换](https://img.taocdn.com/s3/m/c313665d1fd9ad51f01dc281e53a580216fc5031.png)
如何使用MySQL进行导入导出数据时的数据转换1. 引言数据在各种应用和系统中的流动是非常常见的,而数据库系统是其中最常用的数据存储和管理工具之一。
在使用数据库时,经常需要将数据从一个系统导入到另一个系统中,或者将数据从数据库中导出到其他应用程序或文件中。
而在这个过程中,数据的转换是必不可少的,因为不同的系统或应用程序有不同的数据格式和结构。
本文将介绍如何使用MySQL进行数据导入和导出时的数据转换过程。
2. 数据导入数据导入是将外部数据加载到数据库中的过程。
在使用MySQL进行数据导入时,首先要确定外部数据的文件格式和结构,然后根据需要进行数据转换。
下面是几种常见的数据导入方式和数据转换方法。
2.1 CSV文件导入CSV(Comma-Separated Values)是一种常见的文本文件格式,它使用逗号作为字段之间的分隔符。
在使用MySQL导入CSV文件时,可以使用LOAD DATA INFILE语句来实现。
但有时候,CSV文件可能与MySQL表的字段顺序不一致,或者CSV文件中的某些字段需要进行格式转换。
对于字段顺序不一致的情况,可以使用字段列表来指定导入的字段顺序,例如:LOAD DATA INFILE 'data.csv' INTO TABLE table_name (col2, col1, col3);对于需要进行格式转换的字段,可以使用SET子句来指定转换规则,例如:LOAD DATA INFILE 'data.csv' INTO TABLE table_nameFIELDS TERMINATED BY ','ENCLOSED BY '"'LINES TERMINATED BY '\n'(col1, @var1, col3)SET col2 = STR_TO_DATE(@var1, '%m/%d/%Y');2.2 Excel文件导入Excel文件是非常常见的数据源,但不同版本的Excel文件格式可能有所不同。
mysql 数据还原方法
![mysql 数据还原方法](https://img.taocdn.com/s3/m/c1e91d67492fb4daa58da0116c175f0e7cd119a6.png)
mysql 数据还原方法
要将 MySQL 数据还原,可以使用以下几种方法:
1. 使用 MySQL 命令行还原:使用 `mysql` 命令行工具,通过`source` 命令执行 SQL 脚本文件进行还原。
首先登录到 MySQL 命令行,然后使用 `source` 命令指定要还原的 SQL 脚本文件路径。
```
mysql -u username -p database_name
source /path/to/backup.sql
```
2. 使用 MySQL Workbench 还原:如果你使用 MySQL Workbench 进行数据库管理,可以使用其提供的导入功能还原数据。
打开 MySQL Workbench,选择要还原的数据库连接,然后在工具栏中选择"Server" -> "Data Import",选择要还原的 SQL 文件并按照向导完成还原过程。
3. 使用 phpMyAdmin 还原:如果你使用 phpMyAdmin 进行数据库管理,可以使用其提供的导入功能还原数据。
打开 phpMyAdmin,选择要还原的数据库连接,然后选择 "导入" 选项卡,选择要还原的SQL 文件并执行导入。
无论使用哪种方法,还原数据之前请确保已经创建了要还原的数据库,并且备份文件是可用的。
另外,还原数据可能会覆盖现有的数
据,请谨慎操作。
Windows下根据.frm和ibdata1恢复mysql数据库
![Windows下根据.frm和ibdata1恢复mysql数据库](https://img.taocdn.com/s3/m/d268a490ec3a87c24028c47e.png)
Windows下根据.frm和ibdata1恢复InnoDB类型MySQL数据库MySQL的数据库文件直接复制便可以使用,但是那是指“MyISAM”类型的表。
而使用MySQL-Front直接创建表,默认是“InnoDB”类型,这种类型的一个表在磁盘上只对应一个“*.frm”文件,不像MyISAM那样还“*.MYD,*.MYI”文件。
MyISAM类型的表直接拷到另一个数据库就可以直接使用,但是InnoDB类型的表却不行。
解决方法就是:1.安装完成新服务器之后,通过命令行新建了与原来一样的数据库:数据库名称、用户名、密码都一样。
如果有多个数据库需要恢复,就都给建好。
跟配置新服务器一样。
2.停止mysql服务net stop mysql3.将原来数据库原始数据库文件中的所有.frm文件和ibdata1文件复制到新服务器的数据库文件目录中(保持原来的目录结构)。
4.在MySQL安装目录中找到my.ini配置文件,在里面添加节innodb_force_recovery=6(可选4,5,6详见选项说明)5.重新启动mysql服务net start mysql如果不能成功的话,查看data文件夹中有个“*.err”错误日志文件,其中会对启动失败的原因有所描述的。
比如我碰到过两种错误原因。
一种是类似这样的错误信息:INIFile codeInnoDB: Error: log file .\ib_logfile0 is of different size 0 10485760 bytes InnoDB: than specified in the .cnf file 0 25165824 bytes!这是因为在mysql配置文件中配置的日志文件大小与实际的不相符。
解决方法是直接删掉旧的“ib_logfile0”等日志文件,重启MySQL后会自动生成新的日志文件的。
另一中则是这样的错误信息INIFile codeInnoDB: Operating system error number 5 in a file operation. InnoDB: The error means mysqld does not have the access rights to InnoDB: the directory. It may also be you have created a subdirectory InnoDB: of the same name as a data file. InnoDB: File name .\ibdata1 InnoDB: File operation call: ‘open’. InnoDB: Cannot continue operation.经检查原来是“ibdata1”文件在复制的过程中不知怎的被加上只读属性了。
- 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了)
至此,转换任务顺利完成。