Comment modifier la valeur de innodb buffer pool size dans MySQL sur Mac OS?

j'essaie d'augmenter la taille de l'innodb_buffer_pool_size dans MySQL 5.1 comme je continue à courir dans l'erreur suivante indiquant que j'ai couru hors de l'espace pour les serrures de table.

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

j'ai parcouru la documentation et d'après ce que j'ai compris, j'ai besoin de mettre à jour innodb_buffer_pool_size dans le /etc/my.cnf de fichier. Ma valeur actuelle est de 8M. Cependant, même après avoir créé ce fichier et ajouté la ligne suivante pour définir la valeur, il ne met pas à jour dans MySQL.

set-variable=innodb_buffer_pool_size=256M
<!-Avez-vous des conseils sur la façon dont je peux ajuster cette valeur dans MySQL sur mon mac? D'autres conseils ou des suggestions?

39
demandé sur analyticsPierce 2011-04-18 02:22:59

5 réponses

ajouter à vos mon.cnf

innodb_buffer_pool_size=1G

redémarrez votre mysql pour qu'il ait un effet

55
répondu Neo 2011-04-18 02:58:14

j'ai dû mettre la déclaration sous le bloc [mysqld] pour la faire fonctionner. Dans le cas contraire, le changement n'a pas été reflété. J'ai un REL de distribution.

28
répondu Jorge Walters 2012-08-31 06:02:03

dans les versions précédentes de MySQL (< 5.7.5) la seule façon de définir

'innodb_buffer_pool_size'

variable a été en écrivant à mon.cnf (pour linux) et mon.ini (Pour windows) sous [mysqld] section:

[mysqld]

innodb_buffer_pool_size = 2147483648

Vous devez redémarrer votre serveur mysql pour avoir son effet dans l'action.

mise à jour:

en tant Que de MySQL 5.7.5, l'option de configuration innodb_buffer_pool_size peut être défini dynamiquement en utilisant une instruction SET, vous permettant de redimensionner le pool de tampons sans redémarrer le serveur. Par exemple:

mysql> SET GLOBAL innodb_buffer_pool_size=402653184;

Référence : https://dev.mysql.com/doc/refman/5.7/en/innodb-buffer-pool-resize.html

8
répondu 1000111 2018-03-02 06:20:48

pour les installations OS X standard de MySQL vous trouverez my.cnf situé dans le dossier/ etc/.

étapes pour mettre à jour cette variable:

  1. Terminal De Chargement.
  2. Tapez cd /etc/.
  3. sudo vi my.cnf.
  4. ce fichier devrait déjà exister (sinon, utilisez sudo find / -name 'my.cnf' 2>1 - cela masquera les erreurs et rapportera seulement l'emplacement du fichier successfile).
  5. utiliser vi(m) trouver la ligne innodb_buffer_pool_size, appuyez sur la touche i pour commencer à faire des changement.
  6. lorsque vous avez terminé, appuyez sur esc, shift+colon et tapez wq.
  7. Résultat (fait).
3
répondu exceed 2013-04-11 15:13:37

Comme l'a dit,

innodb_buffer_pool_size=50M

suivant la convention sur les autres variables prédéfinies, assurez-vous qu'il n'y a pas d'espace de chaque côté du signe égal.

puis courir

sudo service mysqld stop
sudo service mysqld start

Remarque:

parfois, par exemple sur Ubuntu, le démon MySQL est nommé mysql plutôt pour mysqld

je trouve que la course /etc/init.d/mysqld restart ne fonctionne pas toujours et vous pouvez obtenir une erreur, comme

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

Pour voir si la variable a été créé, exécutez show variables et voir si la valeur a été mis à jour.

1
répondu Luke Madhanga 2014-11-05 10:53:47