| 
注册时间2012-11-28最后登录2021-2-12阅读权限200积分3774精华0帖子116
 
   
   ta_mind|  | mb_qb7 2013-3-19 01:56
 | 
|---|
 classn_01: 366 classn_02 [LV.9]以坛为家II | 
| 今天在一台MYSQL服务器上发现,明明用了engine=innodb创建的表,结果创建出来却成了myisam的表。再看show variables like '%innodb%'; 
 have_innodb 成了DISABLED。经过一番试验,发现是我关闭数据库后,直接删除ibdata1文件造成的。删除该文件以后,重启数据库,日志文件中会有:
 060330 17:22:07  mysqld started
 InnoDB: The first specified data file ./ibdata1 did not exist:
 InnoDB: a new database to be created!
 060330 17:22:07  InnoDB: Setting file ./ibdata1 size to 10 MB
 InnoDB: Database physically writes the file full: wait...
 InnoDB: Error: all log files must be created at the same time.
 InnoDB: All log files must be created also in database creation.InnoDB: If you want bigger or smaller log files, shut down the
 InnoDB: database and make sure there were no errors in shutdown.
 InnoDB: Then delete the existing log files. Edit the .cnf file
 InnoDB: and start the database again.
 060330 17:22:07 [Note] /usr/sbin/mysqld: ready for connections.
 Version: '5.0.19-standard-log'  socket: '/var/lib/mysql/mysql.sock'  port: 3306  MySQL Community Edition - Standard (GPL)
 060330 17:22:26 [Note] /usr/sbin/mysqld: Normal shutdown
 看来只删除ibdata1文件是不行的,于是再度关闭数据库,把ibdata1和ib_logfile1、ib_logfile0统统删除,再启动,have_innodb 就变成Yes了。
 
 
 | 
 |