自己用的MySQL都是用MYISAM數據庫,還沒涉及到需要INNODB,因此打算直接不加載INNODB引擎。
在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
那三個文件就不會自動產生了。