我们产品的旧版本允许在单个归档文件中捕获系统的当前状态,该归档文件还包含MySQL数据库文件-许多三元组。现在我们有了下一代产品,它不会像捕获数据库文件那样做任何愚蠢的事情,但它必须知道读取旧版本产生的文件。我们的产品是商业闭源产品,但不是很贵。我们不得不停止使用MySQL,因为第二个原因(Oracle更改了MySQL许可),我们不能使用MariaDB,因为第一个(他们的许可吓坏了公司律师)。那么,我的问题是还有另一种读取这些MySQL数据库文件的方法吗?商业轻量级解决方案很好-毕竟,我们正在谈论对数据库文件的只读探索。免费/开源替代品也受到欢迎,只要它们不意味着使用它们的代码也必须是
两天前我安装了RoundCube邮件脚本,用于:PHPName:phpArch:x86_64Version:5.3.18Release:1.el6.remiMySQLName:mysqlArch:x86_64Version:5.5.28Release:1.el6.remi直到今天早上一切都很好,脚本指出RoundCube数据库有问题。我在看目录时有多奇怪:/var/lib/mysql/roundcubemail只有frm文件,没有任何.myd或.myicache.frmcache_index.frmcache_messages.frmcache_thread.frmcontactgro
这个看起来很奇怪。我有一个连接到MySQL数据库的Pascal单元unitu_MySQLConnection;interfaceusesADODB,AnsiStrings,Generics.Collections,SysUtils,DB;typeTMySQLConnection=classstrictprivatemysqlCon:TADOConnection;publicfunctionConnect:boolean;destructorDestroy;end;varMySQLConnection:TMySQLConnection;implementationfunctionTMyS
这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Howtorecovermysqldbfrom.myd,.myi,.frmfiles我在这里看到了这个问题,但老实说无法理解发布的任何解决方案。我刚刚在出现一些问题后重新安装了WindowsVista,我确实为旧安装的Mysql制作了整个“数据”文件夹的副本。MySQL的原始和新安装版本是5.0.85。phpMyAdmin的原始版本是3.2.1,但我现在安装了最新版本:3.5.3。问题是我丢失了一些我认为是表和索引文件的MYI和MYD文件。所有.FRM文件都存在,并且有一个ibdata1文件(还有ib_log
我从生产中转储了一个数据库:mysqldump-u用户名-pintranet2>intranet2.sql进入开发服务器:mysql-u用户名-pintranet2我明白了:第244行的错误1005(HY000):无法创建表“./intranet2/dept.frm”(错误号:150)我试着把这个放在sql文件的开头:SETFOREIGN_KEY_CHECKS=0;但我仍然收到相同的消息。mysqldump应该能够重新创建数据库,否则我能相信谁是我的备份? 最佳答案 检查引擎是否为InnoDB。在这种情况下,您可以尝试将这些行放在转
这个问题与我在stackoverflow上看到的相关InnoDB修复问题略有不同。假设我已经使用innodb_file_per_table=1在我的MySQL5.1数据库中恢复了以下内容:db/tablename.ibdinnodb/ibdata1innodb/ib_logfile0innodb/ib_logfile1我丢失了db/tablename.frm文件。我可以启动数据库服务器,但InnoDB提示:11072313:26:33InnoDB:Error:table'db/tablename'InnoDB:inInnoDBdatadictionaryhastablespaceid5
我正在尝试在PMA中恢复数据库,但只能访问frm和ibd文件-而不是我了解您需要的ib_log文件。我知道我可能无法恢复数据库数据,但是否可以从frm文件中恢复表的结构? 最佳答案 我只从.frm和.idb文件恢复了表格。获取创建表的SQL查询如果您已经知道表的架构,则可以跳过此步骤。首先,安装MySQLUtilities.然后你可以在命令提示符(cmd)中使用mysqlfrm命令。其次,使用mysqlfrm命令从.frm文件获取SQL查询:mysqlfrm--diagnostic/example_table.frm然后您可以获得创
我在带有MyISAM存储引擎的mysql中有一个表。我想在特定表上创建分区,为此我正在执行查询-altertableStopsPARTITIONBYKEY(`stop_id`)PARTITIONS200其中“stop_id”是varchar类型。执行上述查询时出现错误-#1016-Can'topenfile:'./database_name/#sql-38f_36aa.frm'(errno:24)谁能帮我解决这个问题?谢谢。 最佳答案 来自here和here.errno:24meansthattoomanyfilesareopenf
忠人之事受人之托起因是因为一位朋友的数据库服务器被重装了,只剩下一个zbp_post.frm和zbp_post.ibd文件。咨询我能不能恢复,确实我只用过mysqldump这种工具导出数据然后进行恢复到数据库。这种直接备份物理存储文件还没有尝试过。前提是需要历史ibd文件的所属数据库版本需要和还原新库数据库版本保持一致,这样才能少踩坑。创建表结构要想恢复数据,表结构需要和.ibd里面的结构保持一致,如果不一致将恢复不成功可能会报如下错误。或者其他异常。[ERROR]InnoDB:Tryingtoaccesspagenumber426442752inspace24,spacenametest1/
前置首先,只有InnoDB引擎的数据库才需要这样恢复,myisam不需要这么麻烦,只要数据文件存在直接复制过去就可以。其次,mysql数据库必须是按表存放数据的,默认不是,但是大家生产肯定是按分表设置的吧,如果不是,则无法这样恢复数据。mysql.ini的设置为innodb_file_per_table=1。.frm文件是mysql表结构定义文件,使用mysql-utilities中的mysqlfrm来将其转换成mysql的create语句,来重建表结构.ibd文件存了每个表的元数据,包括表结构的定义等。就知道是用这个来恢复数据就行工具mysql-utilitieshttps://downlo