13

我是 MySQL 新手;最近我在为系统变量设置新值时遇到了这个问题。

我试过:

mysql> set global innodb_ft_min_token_size = 6;

但我收到此错误:

ERROR 1238 (HY000): Variable 'innodb_ft_min_token_size' is a read only variable

有没有办法改变只读权限?我阅读了有关InnoDB 参数的信息,但无法解决问题。

4

3 回答 3

11

您链接的网站包含所需的所有信息:

可以在服务器启动时通过将它们命名为 true 或 false 来启用系统变量 [...]

采用数值的系统变量可以在命令行上指定为 --var_name=value 或在选项文件中指定为 var_name=value。

许多系统变量可以在运行时更改(请参阅第 5.1.5.2 节,“动态系统变量”)。

innodb_ft_min_token_size不是动态变量,因此您必须更改配置文件my.cnf并添加innodb_ft_min_token_size=6. 或者,您需要更改 MySQL 服务器的启动命令。

更改后,您必须重新启动 MySQL 服务器。

于 2014-05-15T06:39:17.417 回答
3

试试这个:在/etc/mysql/my.cnf文件中(你的位置可能不同,locate my.cnf找到你系统的位置),添加/修改:

[mysqld]
innodb_ft_min_token_size = 2

将最小限制设置为 2。不要忘记重新启动 mysql 服务器并重建全文索引。对我来说,以下工作就像一个魅力。

drop index index_stem on  maps;
CREATE FULLTEXT INDEX index_stem ON maps(stem_value);
于 2016-04-06T07:24:49.933 回答
-3

从 MySQL 5.7.5 开始,可以使用 SET 语句动态设置 innodb_buffer_pool_size 配置选项,从而允许您在不重新启动服务器的情况下调整缓冲池的大小。例如:

mysql> SET GLOBAL innodb_buffer_pool_size=402653184;

https://dev.mysql.com/doc/refman/5.7/en/innodb-buffer-pool-resize.html

于 2017-05-31T09:35:36.020 回答