是key_buffer或key_buffer_size吗?


9

我在互联网上搜索my.cnf文件中正确的变量。有人说过时了key_buffer_size,但有人说这key_buffer_size是中的正确变量my.cnf

那么,这里真正正确的变量是什么?是key_buffer还是key_buffer_size

我正在使用Ubuntu 12.04。

而且我key_buffermy.cnf文件中有两个变量。这是我在安装MySQL之后得到的。

第一个位于以下位置:

[mysqld]
key_buffer              = 16M

另一个位于以下位置:

[isamchk]
key_buffer              = 16M

Answers:


11

我不认为key_buffer_size过时,mysql key_buffer_size在其网站上的文档中从最早可用最新版本一直在使用。还有一个错误报告,请求弃用的变量在启动时发出警告,表明它key_buffer已弃用。

我个人会使用该文档,因为它应该是权威性的,尽管互联网上充满了有用的信息,但它也充满了错误的信息。


话虽如此,但看起来mysql似乎已经不再用匹配您提供的变量名和它的变量的方式,只要您提供的名称是唯一的,它就会这样做。

与key_buffer_size = 16m

mysql> show variables like '%key_buffer%';
+-----------------+----------+
| Variable_name   | Value    |
+-----------------+----------+
| key_buffer_size | 16777216 |
+-----------------+----------+
1 row in set (0.00 sec)

更改为key_buffer = 6m

mysql> show variables like '%key_buffer%';
+-----------------+---------+
| Variable_name   | Value   |
+-----------------+---------+
| key_buffer_size | 6291456 |
+-----------------+---------+
1 row in set (0.00 sec)

更改为key_b = 16m

mysql> show variables like '%key_buffer%';
+-----------------+----------+
| Variable_name   | Value    |
+-----------------+----------+
| key_buffer_size | 16777216 |
+-----------------+----------+
1 row in set (0.00 sec)

更改为key_ = 16m并且mysql无法启动,因为key_不是唯一的。


谢谢。我只是在想,因为在安装MySQL之后,该变量不是key_buffer_size,而是仅key_buffer。
jaYPabs 2013年

@ user176890:是的,我也注意到了。如果您真的很好奇,应该咨询Canonical谁维护和更新Ubuntu。
user9517 2013年

这是Lain击败我的关键要诀是经常使SHOW VARIABLE LIKE '%key_buffer%';我对MySQL命名约定感到困惑,并且SHOW VARIABLES可以节省生命。
JakeGould 2014年

1
@JakeGould将您击败6个月
user9517 2014年

@伊恩圣cr @ p!旧帖子再次刺伤了我。
JakeGould 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.