web-dev-qa-db-ja.com

innodb_buffer_pool_sizeは変更されません

私はMySQL 5.5.23-1〜dotdeb.0(Debian)を使用していますが、これはmy.cnfの関連部分です

default-storage-engine = innodb
innodb_buffer_pool_size = 3G
innodb_log_file_size = 256M
innodb_thread_concurrency = 8
innodb_flush_method = O_DIRECT
innodb_file_per_table = 1
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 4M
innodb_additional_mem_pool_size = 20M

問題は、innodb_buffer_pool_sizeにどの値を選択しても(4Gと8Gと8000Mも試しました)。 mysql> SHOW global VARIABLES;

| innodb_buffer_pool_size | 134217728  

チューニングプライマースクリプトの結果:

INNODB STATUS
Current InnoDB index space = 621 M
Current InnoDB data space = 3.82 G
Current InnoDB buffer pool free = 0 %
Current innodb_buffer_pool_size = 128 M
Depending on how much space your innodb indexes take up it may be safe
to increase this value to up to 2 / 3 of total system memory 

これを修正するためのヒントに感謝します。

4
alfish

わかりました、ありがとう この答え my.cnfにconfig WITHIN [mysqld]ブロックを設定して有効にする必要があることがわかりました。

私の間違いは、コマンドをmy.cnfファイルの最後に追加したことです。

次に、mysqlの再起動時に遭遇しました

InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes

このエラーを解決するには、ログを削除する必要がありました

rm -f/var/lib/mysql/ib_logfile [01]

rolandoが言ったように、再起動します here

5
alfish

免責事項:Debianユーザーではありません

コメントに基づいて、私は以下を提案します

cp /etc/mysql/my.cnf /etc/my.cnf
cp /etc/mysql/my.cnf /usr/etc/my.cnf 
cp /etc/mysql/my.cnf /var/lib/mysql/my.cnf (or wherever datadir is)

これらのmy.cnfファイルを作成してmysqlを再起動してもinnodb_buffer_pool_sizeを変更できない場合は、mysqlバイナリmysqldが疑われます。ソースコンパイルされている可能性が最も高く、おそらくInnoDBの値がハードコードされています。

Mysqldがソースコンパイルされているかどうかを確認するには、mysqldの稼働中にOSのプロセスリストを確認します。数十のmysqld接続が表示される場合、mysqldがソースコンパイルされている可能性があります。

そこから、mysqlをアンインストールし、RPMまたはtarインストールをダウンロードすることをお勧めします。次に、my.cnfが応答するかどうかを確認します。

2
RolandoMySQLDBA

MySQLにMy.cnfファイルの新しいパラメータを認識させたい場合は、mySQLを再起動する必要があります。

1
ALH