开启InnoDB引擎



[root@djipidb01-dr mysqldata]# /etc/init.d/mysqld start
MySQL Daemon failed to start.


150415 10:38:25 mysqld_safe Starting mysqld daemon with databases from /mysqldata
150415 10:38:25  InnoDB: Initializing buffer pool, size = 8.0M
150415 10:38:25  InnoDB: Completed initialization of buffer pool
150415 10:38:25  InnoDB: Log file ./ib_logfile1 did not exist: new to be created
150415 10:38:25 [ERROR] Plugin 'InnoDB' init function returned error.
150415 10:38:25 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
150415 10:38:25 [ERROR] Unknown/unsupported table type: INNODB
150415 10:38:25 [ERROR] Aborting


查看:have_innodb   为    NO 

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            | DISABLED |
+-------------------------+----------+
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重命名,让系统重新生成数据文件和两个日志文件;


修改 my.cnf
default-storage-engine=INNODB



### MySQL InnoDB 存储引擎的使用说明、特性和配置 #### 使用说明 InnoDB 是 MySQL 的默认存储引擎,支持事务处理和外键约束等功能。通过定义 `ENGINE=InnoDB` 可以显式创建一个基于 InnoDB 的表[^2]。 以下是创建 InnoDB 表的一个简单示例: ```sql CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL, password VARCHAR(50) NOT NULL ) ENGINE = InnoDB; ``` #### 主要特性 1. **事务支持** InnoDB 支持 ACID 事务模型,能够确保数据的一致性和可靠性。它实现了 MVCC(多版本并发控制),允许高并发场景下的读写操作不会相互阻塞[^5]。 2. **崩溃恢复机制** InnoDB 提供了自动崩溃恢复功能,即使发生意外宕机也能快速恢复到一致状态[^1]。 3. **刷新邻接页特性** Flush Neighbor Page 特性会在刷新某个脏页时,同时检测并刷新同一区内的其他脏页。这一特性可以通过参数 `innodb_flush_neighbors` 控制,默认适用于机械硬盘环境;但对于 SSD 设备,建议将其设为 0 关闭此功能以提高性能[^3]。 4. **表空间管理** InnoDB 支持灵活的表空间管理方式,可以单独为每个表分配文件(file-per-table mode)。这有助于更好地管理和维护磁盘上的数据分布。 #### 配置选项 为了优化 InnoDB 性能,可以根据实际需求调整多个重要参数: 1. **线程相关配置** - `innodb_read_io_threads`: 设置用于读取 I/O 请求的线程数。 - `innodb_write_io_threads`: 设置用于写入 I/O 请求的线程数。 - 默认情况下,这两个值均为 4,可根据硬件资源适当增加以提升吞吐量[^4]。 2. **日志缓冲区大小** 参数 `innodb_log_buffer_size` 决定了重做日志缓冲区的容量。较大的缓冲区可减少频繁刷盘次数,从而改善性能,但也会占用更多内存资源。 3. **刷新邻居页面开关** 如前所述,`innodb_flush_neighbors` 能够决定是否开启 Flush Neighbor Page 功能。推荐针对不同类型的存储介质合理设定该值。 4. **MVCC 和 Undo Log** 数据库记录中的三个隐含字段 (`DB_TRX_ID`, `DB_ROLL_PTR`, `DB_ROW_ID`) 结合 Undo Log 构建起完整的版本链路,使得 MVCC 得以高效运行。 #### 示例查询命令 查看当前系统的线程变量以及 InnoDB 运行状况可通过以下 SQL 命令完成: ```sql SHOW VARIABLES LIKE '%threads%'; SHOW ENGINE INNODB STATUS; ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值