MYSQL无法启动提示: Default storage engine (InnoDB) is not available的解决方法

(编辑:jimmy 日期: 2024/12/27 浏览:2)

在my.ini(linux下/etc/my.cnf)加上skip-innodb,就可以了。
我这样设置后,在linux下都没问题,今天在我本机winXP启动MYSQL,提示启动不起来。看下mysql目录的错误日志:
引用
090613 10:15:27 [ERROR] Default storage engine (InnoDB) is not available
090613 10:15:27 [ERROR] Aborting

090613 10:15:27 [Note] C:\www\mysql\bin\mysqld-nt: Shutdown complete

估计是上次加了参数后,一直没启动起来。。。已经很久没用本机的mysql了。
查了下,原来my.ini里有一句:default-storage-engine=INNODB,把默认的engine设为INNODB,而我又加了skip-innodb,怪不得启不来了。

将default-storage-engine改为MYISAM,MYSQL启动OK!
在skip-innodb下,data目录下的ibdata1,ib_logfile0,ib_logfile1这三个文件就不需要了,就可以删除。

测试了下,在没加skip-innodb时,删除了这三个文件,启动时会自动创建这三个文件,日志如下:
引用
InnoDB: The first specified data file .\ibdata1 did not exist:
InnoDB: a new database to be created!
090613 10:19:37 InnoDB: Setting file .\ibdata1 size to 10 MB
InnoDB: Database physically writes the file full: wait...
090613 10:19:37 InnoDB: Log file .\ib_logfile0 did not exist: new to be created
InnoDB: Setting log file .\ib_logfile0 size to 24 MB
InnoDB: Database physically writes the file full: wait...
090613 10:19:38 InnoDB: Log file .\ib_logfile1 did not exist: new to be created
InnoDB: Setting log file .\ib_logfile1 size to 24 MB
InnoDB: Database physically writes the file full: wait...
InnoDB: Doublewrite buffer not found: creating new
InnoDB: Doublewrite buffer created
InnoDB: Creating foreign key constraint system tables
InnoDB: Foreign key constraint system tables created
090613 10:19:39 InnoDB: Started; log sequence number 0 0
090613 10:19:39 [Note] C:\www\mysql\bin\mysqld-nt: ready for connections.


再删除这三个文件,加了skip-innodb后,启动日志:
引用

090613 10:30:12 [Note] C:\www\mysql\bin\mysqld-nt: Normal shutdown

090613 10:30:12 [Note] C:\www\mysql\bin\mysqld-nt: Shutdown complete

090613 10:30:17 [Note] C:\www\mysql\bin\mysqld-nt: ready for connections.
Version: '5.0.45' socket: '' port: 3306 Source distribution

那三个文件就不会自动产生了。