Как изменить значение для innodb_buffer_pool_size в MySQL на Mac OS? - PullRequest
44 голосов
/ 18 апреля 2011

Я пытаюсь увеличить размер innodb_buffer_pool_size в MySQL 5.1, так как продолжаю сталкиваться со следующей ошибкой, указывающей, что у меня недостаточно места для блокировок таблицы.

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

Я просмотрел документацию и из того, что я собрал, мне нужно обновить innodb_buffer_pool_size в файле /etc/my.cnf.Мое текущее значение 8M.Однако даже после создания этого файла и добавления следующей строки для установки значения он не обновляется в MySQL.

set-variable=innodb_buffer_pool_size=256M

Есть ли какие-либо советы о том, как я могу настроить это значение в MySQL на моем Mac?Любые другие советы или предложения?

Ответы [ 5 ]

60 голосов
/ 18 апреля 2011

добавьте это в свой my.cnf

innodb_buffer_pool_size=1G

, перезапустите MySQL, чтобы он заработал

28 голосов
/ 31 августа 2012

Мне пришлось поместить оператор в блок [mysqld], чтобы он работал.В противном случае изменение не было отражено.У меня есть дистрибутив REL.

13 голосов
/ 12 июля 2016

В более ранних версиях MySQL (<5.7.5) </strong> единственный способ установить

'innodb_buffer_pool_size'

былзапись в my.cnf (для linux) и my.ini (для windows) в разделе [mysqld]:

[mysqld]

innodb_buffer_pool_size = 2147483648

Вам нужночтобы перезапустить ваш сервер mysql, чтобы он заработал в действии.

ОБНОВЛЕНИЕ:

Начиная с MySQL 5.7.5, параметр конфигурации innodb_buffer_pool_size можетбыть установленным динамически с помощью инструкции SET, что позволяет изменять размер пула буферов без перезапуска сервера.Например:

mysql> SET GLOBAL innodb_buffer_pool_size=402653184;

Ссылка: https://dev.mysql.com/doc/refman/5.7/en/innodb-buffer-pool-resize.html

3 голосов
/ 11 апреля 2013

Для стандартных установок OS X MySQL вы найдете файл my.cnf, расположенный в папке / etc /.

Шаги для обновления этой переменной:

  1. Загрузка терминала.
  2. Тип cd /etc/.
  3. sudo vi my.cnf.
  4. Этот файл уже должен существовать (если нет, пожалуйста, используйте sudo find / -name 'my.cnf' 2>1 - это скроет ошибки и сообщит только о файле успеха)location).
  5. С помощью vi (m) найдите строку innodb_buffer_pool_size, нажмите i, чтобы начать вносить изменения.
  6. Когда закончите, нажмите esc, shift + двоеточие и введите wq.
  7. Прибыль (сделано).
1 голос
/ 05 ноября 2014

Как указано,

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 и посмотрите, было ли обновлено значение.

...