mysql 数据库无法启动INNODB 怎么办求高手解决

mysql 数据库无法启动INNODB 怎么办求高手解决,第1张

您好,很高兴为您解答。

可能是InnoDB数据文件损坏。先不要继续 *** 作了,先把数据和配置文件备份一下防止乱弄把数据全弄坏了,然后再用副本试着恢复。

关于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等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9823160.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存