Mysql 5.6 maux de tête sur Mac OSX
Plusieurs de mes collègues et j'ai récemment mis à niveau à partir de MySQL 5.5 de MySQL 5.6 utiliser le homebrew sur nos Mac pour tester en local avant la mise à niveau de nos serveurs. Depuis cette mise à jour, nous avons tous été intermittent MySQL erreurs lors de l'exécution de nos rails code:
Lost connection to MySQL server at 'sending authentication information', system error: 32
Nous avons essayé de re-faire de nos noms d'utilisateur et mots de passe dans notre base de données, et d'augmenter le délai d'attente de connexion, mais n'ont résolu le problème. Les journaux d'erreur ne mentionnent pas la question. La seule solution que nous avons trouvé lorsque nous rencontrons le problème est de tuer mysql et le redémarrer. J'ai même remarqué cette erreur, plus récemment, à l'aide de mysql -u root -p
sur la ligne de commande. Il semble que une fois que j'ai commencer à obtenir cette erreur, je ne peux pas dépasser mon nombre actuel de connexions de n'importe quel nom d'utilisateur que j'utilise. Si je ferme une connexion, alors je peux ré-ouvrir un.
Nous avons les environnements suivants:
- certains d'entre nous: Rails 3.2, Ruby 2, mysql2 0.3.13, MySQL 5.6.12, Mac OSX 10.8.4
- d'autres de nous: Rails 3.2, Ruby 1.9, mysql2 0.3.13, MySQL 5.6.10, Mac OSX 10.8.4
Les idées de ce que pourrait en être la cause?
Merci!
Julie
- De même avec Mysql 5.6.14 installé via DMG:
$ mysql
ERROR 2013 (HY000): Lost connection to MySQL server at 'sending authentication information', system error: 32
- tout simplement l'arrêt et le redémarrage de l'instance MySQL a fonctionné pour moi. 5.6.14
- Obtenir la même erreur avec Percona Server 5.6 sur OSX 10.9.2: surtout lors des tests unitaires en parallèle à l'aide de 8 connexions. Duh.
- Juste trouvé la solution ultime, ont posté une réponse ci-dessous.
- Cochez cette stackoverflow.com/questions/38459373/... sa fonctionne comme un charme
Vous devez vous connecter pour publier un commentaire.
Aucune des réponses ici m'a aidé, mais finalement j'ai eu de MySQL 5.6 de travail.
TROIS options de correction MySQL 5.6:
(confirmé) Modifier
/etc/my.cnf
(à créer si il n'existe pas encore) et d'ajouter:et redémarrer MySQL. Alors pour que cela fonctionne, vous aurez besoin de les exporter vos bases de données en SQL fichier (mysqldump), puis de les supprimer et de recréer les bases de données, puis de charger les données en arrière.
Modifier la valeur par défaut ulimit valeur de OSX (suggéré par Github utilisateur sodabrew): https://superuser.com/questions/261023/how-to-change-default-ulimit-values-in-mac-os-x-10-6
Ajouter l'option suivante à la section [mysqld] de mon.cnf:
table_open_cache = 250
. Par défaut, il est fixé à 2000, ce qui est bien au-dessus de OSX par défaut de ulimit. Cette solution est également pas recommandé, parce que ça fait mal les performances de votre MySQL - il des forces de MySQL pour ré-ouvrir les tables souvent, si vous avez plus de 250 tableaux: https://mariadb.com/kb/en/optimizing-table_open_cache/Pourquoi cette erreur qui se passe?
Depuis MySQL 5.6 innodb_file_per_table option est activée par défaut, ce qui signifie que chaque tableau de données est stockée dans son propre fichier. OSX par défaut de la limite du nombre de fichiers ouverts est de 256 par processus. Normalement, ce n'est pas un problème, mais dans mon cas je suis en cours d'exécution des tests unitaires en parallèle, ce qui crée des 8 bases de données avec 405 tables chacune. OSX a une limite du nombre de descripteurs de fichiers ouverts par processus. Cette StackOverflow répondre suggère que cette limite est de 256, ce qui explique mon problème à la perfection: avant de MySQL 5.6 toutes les données à partir de ces 8 bases de données dans UN fichier.
Merci à ma collègue Thomas L. qui a trouvé un MySQL rapport de bug qui fait allusion à cette solution!
Nous avons eu le même problème. Cela fixe, il nous
C'est un problème avec la dernière version de mysql est installé via homebrew.
5.6.x crée le problème. la rétrogradation à 5.5.x a résolu le problème pour moi.
Vous pouvez installer l'ancienne formule des versions assez facilement avec homebrew:
brew versions mysql
vous donnera le sha vous avez à la caisse dans /usr/local pour être en mesure d'installer une ancienne versionCela va vous montrer 5.5.29 que la version de mysql. Vous pouvez ensuite désinstaller mysql sur la base de ces instructions et réinstaller tout simplement en exécutant
et en cours d'exécution à travers le processus normal d'installation avec homebrew:
Espère que ça aide.
Vous pouvez checkout master dans /usr/local après l'installation de l'ancienne version de mysql à nouveau. Les versions de brew de commande vous donne même la commande n'caisse de la formule pour mysql mais je ne pense pas que cela a des avantages par rapport à la simple vérification de l'ensemble du référentiel pour la sha et puis retourner à maître après l'installation de l'ancienne version de mysql.
Nous avons constaté que l'utilisation de la suite de correctifs pour nous:
C'est sur les rails 2.3 ontop de terres rares (1.8.7) dans rbenv sur OSX 10.8. YMMV
Je vais avoir le même problème sur la même configuration (mysql 5.6.12). J'ai juste mis à jour mysql avec homebrew pour la version 5.6.13 et le problème a disparu.
J'ai frappé ce problème avec mysql 5.6.16, fraîchement installé via Homebrew sur Mavericks, avec rbenv et des rails, etc.
Décidé de redémarrer avant de travailler à travers les autres solutions ici. Problème résolu!
Donc, si vous n'avez pas redémarré depuis l'installation de mysql, etc, je vous recommande de redémarrer avant de travailler à travers les réponses ici.
Sur Mavericks, cela a fonctionné pour moi:
J'ai réinstallé Homebrew après la mise à jour de Mavericks. Homebrew installé la bouteille de version de MySQL 5.6.13.