早上起来,到PHP
站点去看了下,准备测试下别人写的一个CMS系统,高兴的下载了程序,然后把程序拷贝到所在目录。由于该程序没有install.php,里面只包含了一个*.sql的数据库语句,只得到mysql
数据库中去执行这条语句:
进入数据库后,输入source
所在目录/*.sql
这个时候问题出现了:
QUOTE:
MySQL
Server Error:
The 'InnoDB' feature is disabled; you need MySQL built with
'InnoDB' to have it working
在mysql中输入SHOW variables
like "have_%"查看,显示如下:
QUOTE:
mysql>
SHOW variables like "have_%"
->
;
+-----------------------+----------+
| Variable_name | Value
|
+-----------------------+----------+
| have_archive | YES
|
| have_bdb | NO |
| have_blackhole_engine | NO
|
| have_compress | YES |
| have_crypt | NO
|
| have_csv | NO |
| have_dynamic_loading | YES
|
| have_example_engine | NO |
| have_federated_engine | NO
|
| have_geometry | YES |
|have_innodb
|DISABLED
|
|
have_isam | NO |
| have_merge_engine | YES |
|
have_ndbcluster | NO |
| have_openssl | DISABLED |
|
have_query_cache | YES |
| have_raid | NO |
|
have_rtree_keys | YES |
| have_symlink | YES
|
+-----------------------+----------+
19 rows in set (0.00
sec)
蓝色表示我的MYSQL并不支持innodb
。
QUOTE:
MySQL中InnoDB和MyISAM
类型的差别
InnoDB和MyISAM是在使用MySQL最常用的两个表类型,各有优缺点,视具体应用而定。下面是已知的两者之间的差别,仅供参考。
1.InnoDB不支持FULLTEXT
类型的索引。
2.InnoDB
中不保存表的具体行数,也就是说,执行select count(*) from
table时,InnoDB要扫描一遍整个表来计算有多少行,但是MyISAM只要简单的读出保存好的行数即可。注意的是,当count(*)语句包含
where条件时,两种表的操作是一样的。
3.对于AUTO_INCREMENT类型的字段,InnoDB中必须包含只有该字段的索引,但是在MyISAM表中,可以和其他字段一起建立联合索引。
4.DELETE
FROM table时,InnoDB不会重新建立表,而是一行一行的删除。
5.LOAD TABLE FROM
MASTER操作对InnoDB是不起作用的,解决方法是首先把InnoDB表改成MyISAM表,导入数据后再改成InnoDB表,但是对于使用的额外的InnoDB特性(例如外键)的表不适用。
另外,InnoDB表的行锁也不是绝对的,如果在执行一个SQL语句时MySQL不能确定要扫描的范围,InnoDB表同样会锁全表,例如update
table set num=1 where name like
“%aaa%”
任何一种表都不是万能的,只用恰当的针对业务类型来选择合适的表类型,才能最大的发挥MySQL的性能优势。
如果你想使用外键,事务等功能,记得用innodb引擎。使用方法是create
table
xxx()engine=innodb;如果想所有建立的表格都用innodb引擎,可以把“default-storage-engine=INNODB”加到/etc/mysql/my.cnf(位置可能不同)。设完之后就可以用“show
engines;”检查是否设置好。不过据说该设置在5.0.22下可能无效。
网上查找了,打开我的my.ini文件,找到skip-innodb,改成#skip-innodb。
之后重启mysql。。问题解决。
如图:
QUOTE:
mysql>
SHOW variables like "have_%"
->
;
+-----------------------+----------+
| Variable_name | Value
|
+-----------------------+----------+
| have_archive | YES
|
| have_bdb | NO |
| have_blackhole_engine | NO
|
| have_compress | YES |
| have_crypt | NO
|
| have_csv | NO |
| have_dynamic_loading | YES
|
| have_example_engine | NO |
| have_federated_engine | NO
|
| have_geometry | YES |
| have_innodb | YES
|
| have_isam | NO |
| have_merge_engine | YES
|
| have_ndbcluster | NO |
| have_openssl | DISABLED
|
| have_query_cache | YES |
| have_raid | NO
|
| have_rtree_keys | YES |
| have_symlink | YES
|
+-----------------------+----------+
19 rows in set (0.00
sec)
分享到:
相关推荐
假设您已经确认MySQL不支持InnoDB,并且MySQL支持动态加载插件,那么接下来可以进行InnoDB插件的手动安装。 1. **下载InnoDB插件**:首先需要从官方网站或其他可信源下载InnoDB插件文件,通常为`.so`文件。 2. **...
### MySQL Innodb 索引原理详解 #### 1. 各种树形结构 在深入探讨MySQL Innodb索引之前,我们先了解几种基本的树形数据结构,包括二叉搜索树、B树、B+树以及B*树。 ##### 1.1 搜索二叉树(Binary Search Tree) ...
1. **事务支持**:InnoDB支持事务的四种隔离级别,包括读未提交(READ UNCOMMITTED)、读已提交(READ COMMITTED)、可重复读(REPEATABLE READ,MySQL默认级别)和串行化(SERIALIZABLE)。这使得InnoDB能保证数据...
MySQL支持多种存储引擎,其中最常用的是InnoDB,它提供了事务支持、行级锁定和外键约束等功能。 - **解析器与优化器**:负责将SQL语句解析为内部格式,并选择最优的执行计划。 - **执行器与缓存**:执行器根据优化后...
### MySQL 5.6 新特性-InnoDB:深入剖析 #### MySQL 5.6 版本简介及重要性 MySQL 5.6 是 MySQL 的一个重要版本,相比于之前的版本(如 MySQL 5.1 和 5.5),它在多个方面进行了显著的改进。这些改进不仅提升了...
InnoDB是MySQL中最常用的一种存储引擎,它支持事务安全性和行级锁定,这使得它非常适合处理高并发或多用户的应用场景。InnoDB提供了多种高级功能,如外键约束、事务管理以及崩溃恢复机制等。 3. **MySQL与InnoDB的...
在MySQL数据库中,InnoDB存储引擎扮演着至关重要的角色,它是支持事务处理、行级锁定以及外键约束的主要引擎。InnoDB的引入使得MySQL能够满足企业级应用的需求,提供了高度的数据一致性与可靠性。 首先,InnoDB的...
MySQL 8.0 InnoDB 新特性 MySQL 8.0 是 Oracle 公司发布的最新版本的关系型数据库管理系统,自 2016 年以来,MySQL 8.0 已经引入了许多新的特性和改进,其中 InnoDB 存储引擎是 MySQL 的默认存储引擎之一。在 MySQL...
InnoDB存储引擎是MySQL的默认存储引擎,具有高度可扩展性、高并发性、支持事务等特点。在InnoDB中,多版本并发控制(MVCC)机制实现了高并发访问。InnoDB的物理结构、内存结构、数据字典、索引体系、日志体系等方面...
通过具体实例和详细的技术解析,揭示 InnoDB 如何高效处理各种查询场景,并讨论在这一过程中,存储引擎需要在哪些方面提供支持。 #### 二、测试准备 为了更好地理解和分析查询优化过程,首先我们需要准备一个测试...
1. **InnoDB存储引擎**:是MySQL中最常用的存储引擎之一,支持事务处理、行级锁定以及外键约束等特性。 2. **mysqldump工具**:MySQL自带的一个用于备份数据库的命令行工具,可以导出整个数据库或指定表的数据到SQL...
### MySQL Innodb 引擎特性详解 #### 一、MySQL Innodb 引擎概述 MySQL是一种广泛使用的开源关系型数据库管理系统(RDBMS),它提供了多种存储引擎以满足不同场景的需求。其中,InnoDB是最常用的一种存储引擎之一,...
其中,InnoDB作为MySQL中最常用的存储引擎之一,提供了众多高级特性,如事务支持、行级锁定以及外键约束等。本文将详细介绍如何在MySQL中启用InnoDB存储引擎,并对比分析InnoDB与其他存储引擎(如MyISAM)之间的主要...
### MySQL支持事务配置及启用InnoDB引擎详解 #### 一、引言 MySQL是一种广泛使用的开源关系型数据库管理系统,以其高性能、稳定性和易用性而闻名。其中,InnoDB存储引擎因其支持事务处理、行级锁定和外键等功能,...
MySQL-InnoDB是一个强大的关系型数据库管理系统,其内核支持事务处理、行级锁定以及高度的数据一致性和可用性。在现代数据中心环境中,为了提高性能和降低延迟,SSD(固态硬盘)被广泛采用作为存储介质。针对SSD的...
### MySQL核心Innodb存储引擎浅析—事务系统 #### 存储引擎介绍 在MySQL中,存储引擎是处理表的存储方式的核心组件之一。不同的存储引擎提供了不同的特性,如事务支持、锁定粒度等。其中,MyISAM和InnoDB是最常用...
MySQL是世界上最受欢迎的关系型数据库管理系统之一,而InnoDB则是MySQL中最常用的存储引擎,它提供了事务处理、行级锁定以及外键支持等功能。InnoDB的源码分析对于理解其内部工作原理,优化数据库性能以及解决复杂...
### InnoDB 的奥秘:深入探索 MySQL 的 InnoDB 存储引擎特性 #### 一、InnoDB 存储引擎概述 InnoDB 存储引擎是一种专门为事务处理、高可靠性和性能优化设计的存储引擎,自 MySQL 5.5 版本起成为 MySQL 的默认存储...
InnoDB 存储引擎是 MySQL 的默认存储引擎,它支持外键、行锁、非锁定读、MVCC 等功能。InnoDB 存储引擎通过使用 MVCC 来获取高并发性,并且实现 SQL 标准的 4 种隔离级别,同时使用一种被称为 next-key locking 的...