众所周知MySQL 5.1.46默认引擎为Myisam,那如何开启InnoDB引擎呢?本人在安装数据库并开启InnoDB引擎时出现不少错误,先一一列举仅供大家参考。
1.系统环境
系统:
CentOS release 5.4 (Final)
软件:
MySQL-server-community-5.1.46-1.rhel5
MySQL-shared-compat-5.1.37-0.rhel5
MySQL-client-community-5.1.46-1.rhel5
2.开启InnoDB报错
在配置文件中添加以下内容
#cat /etc/my.cnf
default-storage-engine=innodb
default-table-type=innodb
default-character-set=utf8
character-set-server=utf8
collation-server=utf8_general_ci
启动失败日志
#tail -f /var/log/mysqld.log
3.故障排查
查看myql是否支持InnoDB引擎
mysql> SHOW variables like "have_%";
+-------------------------+----------+
| Variable_name | Value |
+-------------------------+----------+
| have_community_features | YES |
| have_compress | YES |
| have_crypt | YES |
| have_csv | YES |
| have_dynamic_loading | YES |
| have_geometry | YES |
| have_innodb | NO |
| have_ndbcluster | NO |
| have_openssl | DISABLED |
| have_partitioning | YES |
| have_query_cache | YES |
| have_rtree_keys | YES |
| have_ssl | DISABLED |
| have_symlink | YES |
+-------------------------+----------+
14 rows in set (0.00 sec)
安装innodb插件提示初始化错误
问题:
mysql> INSTALL PLUGIN InnoDB SONAME 'ha_innodb_plugin.so';
ERROR 1123 (HY000): Can't initialize function 'InnoDB'; Plugin initialization function failed.
解决:
把ibdata1,ib_datafile0,ib_datafile1重命名,让系统重新生成数据文件和两个日志文件。