如何恢复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类型的表却不行。解决方法就是:

阅读剩余部分

相关阅读 >>

剖析移动站点建站工具搜狐快站的战略理念

妙用.htaccess隐藏网页文件扩展名

discuz! 7正式版亮点之一任务系统

discuz!nt千万级数据量上的两驾马车 tokyocabinet,mongodb

discuz板块横排显示图片的实现方法

discuzx系统 css 编码规范、css属性书写顺序

用ucenter home后台 五步迅速聚集人气

discuz 7.0伪静态rewrite的.htaccess规则

php+apache实现网址伪静态

可兼容ie的获取及设置cookie的jquery.cookie函数方法

更多相关阅读请进入《Discuz论坛》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...

    正在狠努力加载,请稍候...