【mysql】Mysql迁移后 Unknown engine innoDB

背景

mysql 5.1.72数据库服务从一台Linux机器迁移到别的机器,是整个安装路径、数据路径、日志路径一起拷贝过去,然而服务启动后,原InnoDB的都访问不了,报错“Unknown engine innoDB”。

MySQL 5.1版本默认不安装innodb引擎,允许存储引擎开发商以动态方式加载引擎,官方称为InnoDB Plugin,可将其视为InnoDB 1.0.x版本。MySQL 5.5版本对应InnoDB的1.1.x版本,MySQL 5.6版本对应InnoDB-1.2.x。

解决过程

1.查看支持引擎

由于报错是不认识该引擎,所以使用以下命令查看支持的引擎

show engines;
SHOW variables like 'have_%';

可以发现当前服务并没有安装InnoDB引擎

2.安装引擎插件

由于安装路径是全部拷贝,所以${mysql_home}/lib/mysql/plugin下已经存在了插件的共享库文件,在mysql的'plugin_dir'下有ha_innodb_plugin.soha_innodb.so两个文件,只需要使用命令安装即可,(如果没有需要下载拷贝到目录)

进入mysql命令行后,安装引擎插件

INSTALL PLUGIN InnoDB SONAME 'ha_innodb.so';

第一次执行报错 Can't initialize function 'INNODB'; Plugin initialization function failed.,由于使用的数据目录下面已经存在了innoDB引擎的数据,所以将这些数据库文件夹共享表空间ibdata1先迁移到其它文件夹,重启mysql服务,再执行安装命令。

启动后发现已经支持了innodb引擎,再将原来的数据库文件夹和共享表空间ibdata1迁移回来,再重启mysql服务

结果

成功启动并能够访问innodb引擎的数据表。

 

发布了92 篇原创文章 · 获赞 14 · 访问量 5817

猜你喜欢

转载自blog.csdn.net/sarafina527/article/details/103853617
今日推荐