web-dev-qa-db-ja.com

MySQLサーバーシステム変数の新しい値を設定するための読み取り専用権限を変更する方法

私は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パラメータ について読みましたが、問題を解決できませんでした。

7
Rocoder

リンクしたサイト 必要なすべての情報が含まれています:

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サーバーを再起動する必要があります。

9
GhostGambler

これを試してください:In /etc/mysql/my.cnf file(あなたの場合の場所は異なる可能性があります。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);
2
proprius