我在网上搜索了my.cnf
文件中正确的变量。有人说这个变量key_buffer_size
已被弃用,但有人说这key_buffer_size
是正确的变量my.cnf
。
那么,这里真正正确的变量是什么?是key_buffer
还是key_buffer_size
?
我正在使用 Ubuntu 12.04。
而且我key_buffer
在my.cnf
文件中还有两个变量。这是我安装 MySQL 后得到的。
第一个位于此处:
[mysqld]
key_buffer = 16M
另外一个位于此处:
[isamchk]
key_buffer = 16M
答案1
我不认为key_buffer_size
这是过时的,mysqlkey_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_ 不是唯一的。