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でこの値を調整する方法についてアドバイスはありますか?他のアドバイスや提案はありますか?
これをmy.cnfに追加します
innodb_buffer_pool_size=1G
mysqlを再起動して有効にします
ステートメントを機能させるために、[mysqld]ブロックの下にステートメントを配置する必要がありました。それ以外の場合、変更は反映されませんでした。 RELディストリビューションがあります。
以前のバージョンのMySQL(<5.7.5)設定する唯一の方法
「innodb_buffer_pool_size」
変数はmy.cnf(Linuxの場合)およびmy.ini(Windowsの場合)[mysqld]セクションの下:
[mysqld]
innodb_buffer_pool_size = 2147483648
アクションを有効にするには、mysqlサーバーを再起動する必要があります。
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
MySQLの標準OS Xインストールの場合、/ etc /フォルダーにmy.cnfがあります。
この変数を更新する手順:
cd /etc/
。Sudo vi my.cnf
。Sudo find / -name 'my.cnf' 2>1
-エラーを隠し、成功ファイルの場所のみを報告します。innodb_buffer_pool_size
、i
を押して変更を開始します。wq
と入力します。述べたように、
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
を実行し、値が更新されているかどうかを確認します。