我有一个奇怪的MySQL InnoDB问题,我现在已经困扰了几个小时了。我在这里问这个问题,也在DBA StackExchange上问这个问题 - 我会在回答时将答案交叉发布到其他网站。
我已启用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中的相关条目
这就是我知道Barracuda可用的方式
| 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
答案 0 :(得分:1)
我终于找到了答案,并且[不出所料]一直盯着我......
我从早期的管理员那里继承了系统,他在my.cnf
文件中犯了一个错误,将所有InnoDB特定参数放在[innodb]标题下,而不是在[mysqld]标题下是
为什么要花这么长时间找到它?假设配置首先正常工作。 [slaps head] ......
文件段不正确
[mysqld]
# Stuff here
[innodb]
# innodb stuff here
更正文件段
[mysqld]
# Stuff here
# innodb stuff here
现在一切正常。