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?
5 réponses
ajouter à vos mon.cnf
innodb_buffer_pool_size=1G
redémarrez votre mysql pour qu'il ait un effet
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.
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
pour les installations OS X standard de MySQL vous trouverez my.cnf situé dans le dossier/ etc/.
étapes pour mettre à jour cette variable:
- Terminal De Chargement.
- Tapez
cd /etc/
. sudo vi my.cnf
.- 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). - utiliser vi(m) trouver la ligne
innodb_buffer_pool_size
, appuyez sur la touchei
pour commencer à faire des changement. - lorsque vous avez terminé, appuyez sur esc, shift+colon et tapez
wq
. - Résultat (fait).
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.