在 Ubuntu 16.04 上进行全新安装后,我们的应用程序的“thread_stack”值需要更新为 256K(从默认的 192K)。
my.cnf
我们尝试使用以下参数来更新值。
#
# * Fine Tuning
#
key_buffer = 16M
max_allowed_packet = 16M
thread_stack = 262144 //also tried with 256K
thread_cache_size = 8
#Added for activec5 installation
table_open_cache = 4
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
但我收到了这个错误,
mysql: [ERROR] Found option without preceding group in config file /etc/mysql/my.cnf at line 27!
然后我在每一行前面添加了一个 ! ,错误没有出现,但如果我执行
SHOW VARIABLES LIKE '%thread_stack%';
+---------------+--------+
| Variable_name | Value |
+---------------+--------+
| thread_stack | 196608 |
+---------------+--------+
未读取 my.cnf 文件。我还尝试通过 MYSQL 提示符进行设置,但它说ERROR 1238 (HY000): Variable 'thread_stack' is a read only variable
我还尝试查找其他一些文件,但没有找到。我遗漏了什么?如何将值更新为实际值?
答案1
该文件my.cnf
只是一个包含进一步搜索配置位置的文件。如下所示。
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/
因此,您不应该将任何配置直接放入/etc/mysql/my.cnf
,而应该放入指定的文件夹之一。
/etc/mysql/mysql.conf.d/tuning.cnf
在您的情况下,创建包含如下行的文件是合适的。
[mysqld]
thread_stack = 256k
答案2
错误 1238 (HY000):变量“thread_stack”是只读变量
意味着您的 SET GLOBAL thread_stack=nnnnn; 只能在您的 my.cnf 文件中更改,因为它不是动态全局变量。
注意它是 [mysqld] 部分的一部分。