Ответ 1
добавьте это в свой my.cnf
innodb_buffer_pool_size=1G
перезагрузите mysql, чтобы сделать эффект
Я пытаюсь увеличить размер 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? Любые другие советы или предложения?
добавьте это в свой 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 параметр конфигурации innodb_buffer_pool_size может быть задано динамически с помощью инструкции SET, позволяющей изменять размер пул буферов без перезапуска сервера. Например:
mysql> SET GLOBAL innodb_buffer_pool_size=402653184;
Ссылка: http://dev.mysql.com/doc/refman/5.7/en/innodb-buffer-pool-online-resize.html
Для стандартных установок OS X MySQL вы найдете my.cnf, расположенный в папке /etc/.
Шаги по обновлению этой переменной:
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
и посмотрите, обновлено ли значение.