我有一个奇怪的 MySQL InnoDB 问题,我已经为此苦苦挣扎了几个小时。我在这里以及 StackOverflow 主站点上都在问这个问题——我会在回答后将答案交叉发布到其他站点。
我启用了 InnoDB 插件作为内置版本的替代品,并且设置innodb_file_format
和innodb_file_per_table
没有达到所需的效果。MySQL 状态变量仍然显示Anaconda
为默认引擎。
任何建议将不胜感激!
my.cnf设置的相关部分
下面的设置在覆盖这些选项的配置中的其他地方不存在。
innodb_file_per_table = 1
innodb_file_format = Barracuda
innodb_strict_mode = 1
SHOW VARIABLES 中的相关条目
这就是我知道梭子鱼可用的方式
| innodb_file_format | Antelope |
| innodb_file_format_check | Barracuda |
| innodb_file_per_table | OFF |
| innodb_strict_mode | OFF |
| innodb_version | 1.0.9 |
MySQL日志部分
日志还显示 Barracuda 可用......
111020 18:10:13 mysqld_safe Starting mysqld daemon with databases from /.../mysql_data/
InnoDB: The InnoDB memory heap is disabled
InnoDB: Mutexes and rw_locks use GCC atomic builtins
InnoDB: Compressed tables use zlib 1.2.3
111020 18:10:13 InnoDB: highest supported file format is Barracuda.
111020 18:10:13 InnoDB Plugin 1.0.9 started; log sequence number 5609019
111020 18:10:13 [Note] Event Scheduler: Loaded 0 events
111020 18:10:13 [Note] /.../mysql/libexec/mysqld: ready for connections.
Version: '5.1.48-log' socket: '/tmp/mysql.sock' port: 3306 Source distribution
我终于找到了答案,它一直[毫不奇怪]一直盯着我看……
我从早期的管理员那里继承了系统,他在
my.cnf
文件中犯了一个错误,将所有 InnoDB 特定参数放在 [innodb] 标题下,而不是放在 [mysqld] 标题下。为什么要花这么长时间才能定位?首先假设配置工作正常。[拍脑袋]...
文件段不正确
正确的文件段
现在一切都按预期进行。