mysql显示像'innodb%'这样的变量没有返回任何内容

时间:2013-02-18 19:30:23

标签: mysql

我在RHEL6.3上运行MySQL服务器5.1.61。 MysQL服务器运行正常但我发现我需要调整innodb_buffer_pool_size。我认为可以使用

显示此变量
  

的MySQL>显示'innodb%'等变量;

但实际上,它什么也没有返回。它为什么什么都不返回?我在哪里可以看到实际的innodb_buffer_pool_size(除了my.cnf文件)。

PS:我知道我可以在my.cnf中更改innodb_buffer_pool_size并重新启动MySQL,但为什么我看不到它的实际值呢?

2 个答案:

答案 0 :(得分:4)

在MySQL 5.1上,如果在启动期间遇到错误,InnoDB存储引擎可能无法初始化。在这种情况下,它只是禁用InnoDB并继续。可以访问MyISAM表,但不会有InnoDB表。

检查InnoDB存储引擎是否已启用。这是5.1.65实例的输出:

mysql> show variables like 'have_innodb';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| have_innodb   | YES   |
+---------------+-------+

mysql> show engines;
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine     | Support | Comment                                                        | Transactions | XA   | Savepoints |
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
| InnoDB     | YES     | Supports transactions, row-level locking, and foreign keys     | YES          | YES  | YES        |
. . .

接下来,我通过编辑my.cnf来设置innodb_log_file_size=256M来模拟InnoDB故障,这不是磁盘上日志文件的大小。然后我重新启动了实例。

mysql> show variables like 'have_innodb';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| have_innodb   | NO    |
+---------------+-------+

mysql> show variables like 'innodb%';
Empty set (0.00 sec)

麻烦!去哪儿看?错误日志文件:

InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes
InnoDB: than specified in the .cnf file 0 268435456 bytes!
130218 12:50:46 [ERROR] Plugin 'InnoDB' init function returned error.
130218 12:50:46 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.

如果遇到初始化InnoDB的错误,您也可以强制MySQL中止其启动,因此您再也不会遇到这种情况。将其添加到/etc/my.cnf:

[mysqld]
innodb=force 

然后当我尝试启动时,我在错误日志中看到了这一点:

InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes
InnoDB: than specified in the .cnf file 0 268435456 bytes!
130218 12:55:03 [ERROR] Plugin 'InnoDB' init function returned error.
130218 12:55:03 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
130218 12:55:03 [ERROR] Failed to initialize plugins.
130218 12:55:03 [ERROR] Aborting

130218 12:55:03 [Note] /home/billkarwin/opt/mysql/5.1.65/bin/mysqld: Shutdown complete

在MySQL 5.5中,如果InnoDB无法初始化,服务器将无法启动。

答案 1 :(得分:2)

尝试SHOW VARIABLES WHERE variable_name LIKE 'innodb%'