web-dev-qa-db-ja.com

Mac OS上のMySQLでinnodb_buffer_pool_sizeの値を変更する方法は?

MySQL 5.1でinnodb_buffer_pool_sizeのサイズを大きくしようとしていますが、テーブルロックのスペースが足りなくなったことを示す次のエラーが発生し続けています。

ERROR: The total number of locks exceeds the lock table size
Error
Code: 1206

私はドキュメントを調べましたが、収集したものから、/ etc/my.cnfファイルのinnodb_buffer_pool_sizeを更新する必要があります。現在の値は8Mです。ただし、そのファイルを作成し、次の行を追加して値を設定した後でも、MySQLでは更新されません。

set-variable=innodb_buffer_pool_size=256M

MacのMySQLでこの値を調整する方法についてアドバイスはありますか?他のアドバイスや提案はありますか?

47
analyticsPierce

これをmy.cnfに追加します

innodb_buffer_pool_size=1G

mysqlを再起動して有効にします

62
Neo

ステートメントを機能させるために、[mysqld]ブロックの下にステートメントを配置する必要がありました。それ以外の場合、変更は反映されませんでした。 RELディストリビューションがあります。

28
Jorge Walters

以前のバージョンのMySQL(<5.7.5)設定する唯一の方法

「innodb_buffer_pool_size」

変数はmy.cnf(Linuxの場合)およびmy.ini(Windowsの場合)[mysqld]セクションの下:

[mysqld]

innodb_buffer_pool_size = 2147483648

アクションを有効にするには、mysqlサーバーを再起動する必要があります。

UPDATE:

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

17
1000111

MySQLの標準OS Xインストールの場合、/ etc /フォルダーにmy.cnfがあります。

この変数を更新する手順:

  1. ターミナルをロードします。
  2. タイプcd /etc/
  3. Sudo vi my.cnf
  4. このファイルは既に存在するはずです(そうでない場合は、Sudo find / -name 'my.cnf' 2>1-エラーを隠し、成功ファイルの場所のみを報告します。
  5. Vi(m)を使用してinnodb_buffer_pool_sizeiを押して変更を開始します。
  6. 完了したら、esc、shift + colonを押してwqと入力します。
  7. 利益(完了)。
3
exceed

述べたように、

innodb_buffer_pool_size=50M

他の定義済み変数の規則に従って、等号の両側にスペースがないことを確認します。

次に実行する

Sudo service mysqld stop
Sudo service mysqld start

時々、例えばUbuntuでは、MySQLデーモンの名前はmysqlではなくmysqldです

/etc/init.d/mysqld restartを実行しても常に機能するとは限らず、次のようなエラーが表示される場合があります。

Stopping mysqld:                                           [FAILED]
Starting mysqld:                                           [  OK  ]

変数が設定されているかどうかを確認するには、show variablesを実行し、値が更新されているかどうかを確認します。

1
Luke Madhanga