前几天公司的一个项目组的同事反应说公司内部的一台Linux服务器上的MySQL没有InnoDB这个引擎,我当时想应该不可能啊,MySQL默认应该 就已经安装了这个引擎的吧,于是上服务器去看了看,发现还真没有,于是putty到服务器上,show engines看了一下:

    +------------+---------+
| Engine | Support |
+------------+---------+
| CSV | YES |
| MRG_MYISAM | YES |
| MEMORY | YES |
| MyISAM | DEFAULT |
+------------+---------+

列表中没有InnoDb,第一反应是不是安装MySQL的时候没有编译InnoDb呢?但心想MySQL应该是自带了的,但google发现有网友说因为InnoDb是以插件的方式加载到MySQL中的,所以可以直接使用install plugin innodb soname 'ha_innodb.so'来启用InnoDB,但首先我们需要查看一下是否已经编译InnoDb:

    mysql> show plugins;
+------------+--------+----------------+---------+---------+
| Name | Status | Type | Library | License |
+------------+--------+----------------+---------+---------+
| binlog | ACTIVE | STORAGE ENGINE | NULL | GPL |
| CSV | ACTIVE | STORAGE ENGINE | NULL | GPL |
| MEMORY | ACTIVE | STORAGE ENGINE | NULL | GPL |
| MyISAM | ACTIVE | STORAGE ENGINE | NULL | GPL |
| MRG_MYISAM | ACTIVE | STORAGE ENGINE | NULL | GPL |
+------------+--------+----------------+---------+---------+

但是发现连插件里面都没有,这下可以确定是没有编译了,于是决定对MySQL重新编译,当然编译前请先备份所有数据库,以免造成数据丢失。

    [root@192.168.1.1]# mysqldump --all-database -u root -p > /data0/www/.sql
[root@192.168.1.1]# mysql-5.1.]#screen -S stou
[root@192.168.1.1]# mysql-5.1.]#automake --force --add-missing
[root@192.168.1.1]# mysql-5.1.]#./configure --prefix=/usr/local/mysql/ --with-plugins=innobase
wdcp下安装:
[root@192.168.1.1]# mysql-5.1.]#./configure --prefix=/usr/local/mysql/ --with-plugins=innobase --with-charset=gbk --with-collation=gbk_chinese_ci

但是最后却出现了以下错误:

    mysql.cc:: error: expected constructor, destructor, or type conversion before '*' token
mysql.cc: In function 'int not_in_history(const char*)':
mysql.cc:: error: 'HIST_ENTRY' was not declared in this scope
mysql.cc:: error: 'oldhist' was not declared in this scope
mysql.cc:: error: 'history_get' was not declared in this scope
mysql.cc: In function 'void initialize_readline(char*)':
mysql.cc:: error: invalid conversion from 'char** (*)()' to 'char** (*)(const char*, int, int)'
mysql.cc:: error: invalid conversion from 'int (*)(const char*, int)' to 'char* (*)(const char*, int)'
mysql.cc:: error: invalid conversion from 'int (*)()' to 'int (*)(int, int)'
mysql.cc:: error: initializing argument of 'int rl_add_defun(const char*, int (*)(int, int), int)'
mysql.cc: In function 'char** new_mysql_completion(const char*, int, int)':
mysql.cc:: error: 'completion_matches' was not declared in this scope
make[]: *** [mysql.o] Error
make[]: Leaving directory `/usr/download/mysql-5.1./client'
make[]: *** [all] Error
make[]: Leaving directory `/usr/download/mysql-5.1./client'
make: *** [all-recursive] Error

Google一下发现不少人都有这个问题,其实解决这个问题只需要在configure前执行一次:

    [root@192.168.1.1]# make clean  

然后再重复./configure --prefix=/usr/local/mysql/ --with-plugins=innobase和make这个步骤就可以了,然后再:

    [root@192.168.1.1]# make install
[root@192.168.1.1]# service mysqld restart
[root@192.168.1.1]# mysql -u root -p
mysql> show engines;
+------------+---------+
| Engine | Support |
+------------+---------+
| CSV | YES |
| MRG_MYISAM | YES |
| MEMORY | YES |
| InnoDB | YES |
| MyISAM | DEFAULT |
+------------+---------+

InnoDB启用成功!

转载:http://blog.csdn.net/benben0503/article/details/8621015

Linux启用MySQL的InnoDB引擎的更多相关文章

  1. MySQL数据库InnoDB引擎下服务器断电数据恢复

    说明: 线上的一台MySQL数据库服务器突然断电,造成系统故障无法启动,重新安装系统后,找到之前的MySQL数据库文件夹. 问题: 通过复制文件的方式对之前的MySQL数据库进行恢复,发现在程序调用时 ...

  2. Mysql配置文件 innodb引擎

    目录 innodb参数 innodb_buffer_pool_size innodb_read_io_threads|innodb_write_io_threads innodb_open_files ...

  3. 【MySQL】InnoDB引擎ibdata文件损坏/删除后使用frm和ibd文件恢复数据

    参考:http://my.oschina.net/sansom/blog/179116 参考:http://www.jb51.net/article/43282.htm 注意!此方法只适用于innod ...

  4. MySQL中innodb引擎分析(初始化)

    MySQL的存储引擎是以插件形式工作的,这应该是MySQL的一大特色了吧! 依据<深入理解MySQL>的内容,5.1版本号时存储引擎的插件化都还不是彻底,确切的说是刚加入的特性.为MySQ ...

  5. Java面试05|MySQL及InnoDB引擎

    1.InnoDB引擎索引 InnoDB支持的索引有以下几种: (1)哈希索引 (2)全文索引 (1)B+树索引 又可以分为聚集索引与辅助索引 索引的创建可以在CREATE TABLE语句中进行,也可以 ...

  6. Xtrabackup实现Mysql的InnoDB引擎热备份

    前面Zabbix使用的数据库是mysql,数据库备份不用多说,必须滴,由于使用的是innodb引擎,既然做,那就使用第三方强大的Xtrabackup工具来热备吧,Xtrabackup的说明,参见htt ...

  7. Mysql在InnoDB引擎下索引失效行级锁变表锁案例

    先做好准备,创建InnoDB引擎数据表,并添加了相应的索引 DROP TABLE IF EXISTS `innodb_lock`; CREATE TABLE `innodb_lock` ( `a` ) ...

  8. mysql的innodb 引擎 表锁与行锁

    innodb 引擎 行锁与表锁 行锁与表锁是基于索引来说的(且索引要生效) 不带索引 (表锁)要全表扫描 1. 执行select @@autocommit; 查看结果 0是不自动提交事务,1是自动提交 ...

  9. MySQL原理 - InnoDB引擎 - 行记录存储 - Off-page 列

    本文基于 MySQL 8 在前面的两篇文章,我们分析了 MySQL InnoDB 引擎的两种行记录存储格式: Compact 格式 Redundant 格式 在这里简单总结下: Compact 格式结 ...

随机推荐

  1. TCP/IP协议原理与应用笔记04:子网掩码

    1. 子网掩码 是IP 参照物:分网段用的! 比如 192.168.0.1 和192.168.0.2(1).子网掩码为 255.255.255.0那么192.168.0.X 在同一个网段,能互相访问. ...

  2. swift项目中嵌入oc

    参考资料 需要注意的是  与oc包含swift不同的是  swift包含oc需要在桥接文件中包含要使用的oc的头文件 demo:swiftPlayOc(提取码:37c6)

  3. linux云计算集群架构学习笔记:workstation 12.0 按装Red Hat Enterprise Linux 7(64位)

    安装RHEL7.2 步骤: 1.安装虚拟机,按以下截图安装即可  步骤2: Ret hat 7.2 操作系统安装 rhel7因为许可报错解决

  4. 关于RSS

    RSS(简易信息聚合)是一种消息来源格式规范,用以聚合经常发布更新数据的网站,例如博客文章.新闻.音频或视频的网摘.RSS文件(或称做摘要.网络摘要.或频更新,提供到频道)包含了全文或是节录的文字,再 ...

  5. selendroid inspector xpth元素定位记录

    android自动化测试元素定位,目前发现appium官方的uiautomatorviewer一般的元素定位还行,但好多都找不到. 这个时候,可以考虑selendroid的inspector 官网:h ...

  6. 类结构体 与 byte[] 转换类

    public static class StructConvert { public static object BytesToStruct(byte[] bytes, Type strcutType ...

  7. 【转】SharePoint工作流中常用的方法

    SharePoint中使用工作流对象模型. SharePoint工作流对象模型在Microsoft.SharePoint.Workflow命名空间.你可以利用此对象模型对你的工作流进行编程.你可以启动 ...

  8. ant design 自定义表单验证大全

     需求是 账号名可以是手机号也可以是邮箱 要做手机号和邮箱的验证,官网的那个验证规则不匹配  怎么自定义验证规则?  一:组件部分 <Form horizontal> <Row gu ...

  9. ServletContext中的转发

    客户端向服务器发送请求,服务器将请求进行转发,获得响应信息,客户端只发送一次请求,地址栏信息不变. 服务器接收类,进行转发 package com.itheima.zhuanfa; import ja ...

  10. PHP之会话控制小结

    会话控制是一种跟踪用户的通信方式,使用会话控制主要基于以下几点:由于http协议的无状态性,使得不能通过协议来建立两次请求之间的关联:对于通常的页面之间的数据传递方式get和post而言,主要处理参数 ...