您好,很高兴为您解答。
可能是InnoDB数据文件损坏。先不要继续 *** 作了,先把数据和配置文件备份一下防止乱弄把数据全弄坏了,然后再用副本试着恢复。
关于InnoDB的数据恢复 错误日志提示参照下面的网址:
>
。如果你要使用全文索引,那必须使用myisam。
INNODB的实用性,安全性,稳定性更高但是效率比MYISAM稍差,但是有的功能是MYISAM没有的。
首先修改myini,,在[mysqld]下加上:
其中的蓝色字体是要指定的数据库引擎名称。
用sql语句修改已经建成表的引擎:
下面贴出我的myini文件供参考():
按照以上的代码提示 *** 作,我们就能够成功地修改MySQL数据库引擎为INNODB了。本文就介绍到这里,如果您想了解更多MySQL数据库的知识
,不妨看一下这里的文章:,
相信一定会带给您收获的!
对于Mysql有两种模式,MYISAM与INNODB
如果是MYISAM的话,在data目录下里会frm myd myi 三种文件,那么直接把DATA移过去,配置好权限就可以还原了。
如果是INNODB的话,那是相当的烦啊。在data目录下只有frm(这只是一个数据格式),这个移过去后,是无法还原原始数据的。
真正的数据是正放在data目录下的iddata1里。因此,如果有这个文件,那么还是有希望还原的。
但我试了网上所有的文章,都还是提示“数据库里没有表”。
最后我找到了答案。那就是myini的配置文件。里面有一项:
innodb_data_home_dir="C:\Program Files\MySQL\MySQL Server 51\data"
只要把上面的地址设为你正确的地址就可以了。
记得重启一下mysql (在CMD里输入net stop mysql,然后net start mysql)就可以了还原了。。。
我花了一天时间发现的问题,希望能对同样遇到问题的朋友有所帮助。
总结,对于Mysql还是默认采用MYISAM的比较好,容易转移。数据库与数据库是分开的,不会混在一起。所以可以在Myini里设一下默认项:
default-storage-engine=MYISAM
1
检查MySQL里是否已经支持InnoDB。
#
mysql
-u
root
-p
输入密码即可登录MySQL命令行
mysql>
show
variables
like
'have_innodb';
+---------------+-------+
|
Variable_name
|
Value
|
+---------------+-------+
|
have_innodb
|
YES
|
+---------------+-------+
如果上面的值是DISABLED或无,就需要开启InnoDB。
2
打开MySQL配置文件。
Windows:
$MYSQL_INSTALL_DIRECTORY/myini
Linux/Unix:
/etc/mysql/mycnf
3
看有没有skip-innodb,并把它注释掉。
4
然后关掉MySQL再重启。
Linux:
#
/etc/initd/mysql
stop
#
rm
/var/lib/mysql/ib_logfile
#
/etc/initd/mysql
start
Windows:
Go
to
$MYSQL_INSTALL_DIRECTORY/data
and
either
delete/move
the
log
files
with
the
prefix
ib_logfile
mysql被设计成了一个单进程多线程架构的数据库
开始:
1、默认的InnoDB存储引擎的后台线程有7个,4个IO thread ,1个master thread 1个锁监控 thread 1个错误监控thread,IO thread 的数量由配置文件的innodb_file_io_threads参数控制,默认是4,linux下面不可以调整,但是window下面可以
show engine innodb status \G;(root用户,或者你的用户有查看权限)
show variables like 'innodb_version' \G;
show variables like 'innodb_%io_threads' \G;
注释:我十分建议大家安装独立的mysql,不要用集成环境,因为出现问题会后悔死的
2、innodb存储引擎内存有以下部分:
buffer pool 缓冲池
redo log buffer 重做日志缓冲池
additional memory pool 额外内存池
配置文件的innodb:
# Comment the following if you are using InnoDB tables
#skip-innodb
innodb_data_home_dir = "D:/xampp/mysql/data"
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = "D:/xampp/mysql/data"
#innodb_log_arch_dir = "D:/xampp/mysql/data"
## You can set _buffer_pool_size up to 50 - 80 %
## of RAM but beware of setting memory usage too high
innodb_buffer_pool_size = 16M
innodb_additional_mem_pool_size = 2M
## Set _log_file_size to 25 % of buffer pool size
innodb_log_file_size = 5M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
这是myini的配置,更多的InnoDB的配置,可以看my_innodb_heavy_4Gini
注释:配置文件的值可能会根据不同的环境更改,上面的配置文件是在我安装之后默认的
3、缓冲池是用来存放各种数据的缓存,InnoDB存储引擎的工作方式是将数据库文件按页(每页16K)读取到缓冲池,然后按照最近最少使用(LRU)的算法保留在缓冲池中的缓存数据
输入:show engine innodb status\G;
你会备份,不能恢复。真的服你了。
给你二个解决办法:
第一个办法:使用这个命令格式
shell>mysqladmin create 数据库名 -uroot -p (数据库已经存在就不用此步)
shell>mysql -uroot -p 数据库名 < backup-filesql
第二个办法:更详细的用法在mysql的在线手册中,已经给你找到备份恢复的页面了,打看学一下,你们问题就可以肯定搞定了。这是mysql官方中文手册。
备份恢复的页面链接:>
以上就是关于mysql 数据库无法启动INNODB 怎么办求高手解决全部的内容,包括:mysql 数据库无法启动INNODB 怎么办求高手解决、MySQL数据库引擎MyISAM和InnoDB的区别介绍、如何修改MySQL数据库引擎为INNODB等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)