MySQL 5.5 sur Lion ne fonctionne pas
J'ai installé MySQL 5.5 via l'image de disque sur Mac OS X 10.7. J'ai aussi ajouté /usr/local/mysql/bin
de mon chemin dans la .bash_profile
.
which mysql
retourne /usr/local/mysql/bin/mysql
Cependant, je n'arrive pas à obtenir le serveur en cours d'exécution, n'importe quoi que j'essaye.
mysql -u root
retourne:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
sudo /usr/local/mysql/bin/mysqld_safe
démarre et s'arrête alors immédiatement le démon:
120130 23:18:57 mysqld_safe Logging to '/usr/local/mysql/data/Bryans-Macbook-Pro.local.err'.
120130 23:18:57 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
120130 23:18:59 mysqld_safe mysqld from pid file /usr/local/mysql/data/Bryans-Macbook-Pro.local.pid ended
J'ai l'impression que j'ai essayé toutes les solutions possibles qui peuvent être trouvés, et je suis à court d'idées maintenant. J'ai même essayé d'installer une ancienne version de MySQL (5.1) et a obtenu les mêmes résultats et les efforts invain.
DE PLUS AMPLES INFORMATIONS
De course mysqld
résultats dans:
$ mysqld
120209 0:02:23 [Warning] Setting lower_case_table_names=2 because file system for /usr/local/mysql-5.5.20-osx10.6-x86_64/data/ is case insensitive
120209 0:02:23 [Note] Plugin 'FEDERATED' is disabled.
mysqld: Table 'mysql.plugin' doesn't exist
120209 0:02:23 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
120209 0:02:23 InnoDB: The InnoDB memory heap is disabled
120209 0:02:23 InnoDB: Mutexes and rw_locks use GCC atomic builtins
120209 0:02:23 InnoDB: Compressed tables use zlib 1.2.3
120209 0:02:23 InnoDB: Initializing buffer pool, size = 128.0M
120209 0:02:23 InnoDB: Completed initialization of buffer pool
120209 0:02:23 InnoDB: highest supported file format is Barracuda.
120209 0:02:23 InnoDB: 1.1.8 started; log sequence number 1595675
120209 0:02:23 [ERROR] mysqld: unknown option '--skip-locking'
120209 0:02:23 [ERROR] Aborting
120209 0:02:23 InnoDB: Starting shutdown...
120209 0:02:24 InnoDB: Shutdown completed; log sequence number 1595675
120209 0:02:24 [Note] mysqld: Shutdown complete
Mise à JOUR
Bien, j'ai enlevé mysql complètement de mon système, ré-installé une ancienne version (5.1), et il est en train de commencer maintenant. Cependant, je ne peux toujours pas courir rails server
. J'obtiens l'erreur suivante:
/Users/bricker/.rvm/gems/ruby-1.8.7-p352/gems/mysql2-0.2.7/lib/mysql2/mysql2.bundle: dlopen(/Users/bricker/.rvm/gems/ruby-1.8.7-p352/gems/mysql2-0.2.7/lib/mysql2/mysql2.bundle, 9): Library not loaded: /opt/local/lib/mysql5/mysql/libmysqlclient_r.16.dylib (LoadError)
Donc, j'ai exécuté cette commande:
sudo install_name_tool -change libmysqlclient_r.16.dylib /opt/local/lib/mysql5/mysql/libmysqlclient_r.16.dylib ~/.rvm/gems/ruby-1.8.7-p352/gems/mysql2-0.2.7/lib/mysql2/mysql2.bundle
Mais encore recevoir le message d'erreur lorsque vous tentez de démarrer le "serveur rails'.
Mise à JOUR 2
Ok, dernière mise à jour: Après tout, la réinstallation de mysql à de nombreuses reprises, de voir toutes ces erreurs -, il s'avère que peut-être le problème d'origine était un conflit entre les gemmes mysql2-0.2.7
et mysql2-0.3.11
. Pour finalement régler le problème:
-
Supprimé tous les mysql fichiers à partir de mon système (voir script bash ci-dessous)
-
Installé MySQL 5.1.61 (64 bits) à partir de l'Image de Disque fourni sur le site web de MySQL
-
Couru les lignes suivantes:
sudo install_name_tool -change libmysqlclient_r.16.dylib /opt/local/lib/mysql5/mysql/libmysqlclient_r.16.dylib ~/.rvm/gems/ruby-1.8.7-p352/gems/mysql2-0.2.7/lib/mysql2/mysql2.bundle
sudo install_name_tool -change libmysqlclient.16.dylib /usr/local/mysql/lib/libmysqlclient.16.dylib ~/.rvm/gems/ruby-1.8.7-p352/gems/mysql2-0.2.7/lib/mysql2/mysql2.bundle
- couru
gem uninstall mysql2
, et sélectionné la version0.3.11
- la seule version à gauche sur cette RVM section estmysql2-0.2.7
.
Maintenant tout semble fonctionner! Merci encore pour toute l'aide que.
Script Bash pour supprimer mysql fichiers à partir de Mac OS X (10.6 & 10.7).
#!/bin/bash
sudo rm /usr/local/mysql
sudo rm -rf /usr/local/mysql*
sudo rm -rf /Library/StartupItems/MySQLCOM
sudo rm -rf /Library/PreferencePanes/My*
sudo rm -rf ~/Library/PreferencePanes/My*
sudo rm -rf /Library/Receipts/mysql*
sudo rm -rf /Library/Receipts/MySQL*
sudo rm -rf /var/db/receipts/com.mysql.*
echo "Done."
Copier dans remove-mysql.sh
, de le rendre exécutable (chmod +x remove-mysql.sh
), et de l'exécuter.
- Avez-vous regardé dans la cité du journal des erreurs, ou le système de la console?
- Le journal des erreurs qu'il mentionne est vide, et je ne suis pas sûr de la façon de vérifier le système de la console.
- Applications > Utilitaires > Console
- Tout ce qu'elle dit dans la console du système, c'est que j'ai exécuté la commande:
1/31/12 12:09:39.915 AM sudo: bricker : TTY=ttys001 ; PWD=/private/tmp ; USER=root ; COMMAND=/usr/local/mysql/bin/mysqld_safe
- Voir, si ce lien permet de: tech-recipes.com/rx/762/... Avez-vous vérifié si /tmp contient mysql.chaussette?
- garçon, un
cat /usr/local/mysql/data/Bryans-Macbook-Pro.local.err
- Comment avez-vous installer le serveur mysql? via homebrew/macport ou par l'intermédiaire de la source?
- Avez un de ces recommandations a aidé? Où en êtes-vous sur cette question?
- Installé à partir de l'image du disque, via macports, via homebrew... tous ont donné les mêmes résultats. Rien n'a fonctionné jusqu'à présent.
- Le fichier est là et a 777 autorisations pour le groupe _mysql.
Vous devez vous connecter pour publier un commentaire.
mysql_upgrade
skip-locking
option demy.cnf
: MySQL - ce qui fait sauter le verrouillage de dans mon.cnf faire?Si vous ne trouvez pas
skip-locking
dans votremy.cnf
, qui signifie que MySQL charges de chemin d'accès différent à vos attentes. Double-vérifier que l'.P. S. Il semble que vous avez mis à niveau votre serveur MySQL à partir d'une version ancienne, n'est-ce pas?
Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
. J'ai trouvé quelques solutions possibles sur Google, mais aucun d'eux ne semblait fonctionner.mysql_upgrade
? Évidemment, pendant des améliorations dans MySQL entre la version 5.0 et 5.5 il y a été ajoutée spécifique tables système qui doit être créé. Comme une solution rapide pour vous peut-être mieux de les exécuter MySQL 5.0, vidage de toutes les bases de données à l'aide demysqldump
, installation propre (supprimer tout à propos de MySQL ou de déplacer quelque part), installer la nouvelle version et configurer des bases de données à l'aide demysql -u <user> -p<password> < <yourdump.sql>
. D'une autre manière, vous devez suivre toutes les étapes pour ugrade 5.0->5.1->...->5.5... Il y a eu beaucoup de changements dans la structure et l'architecteDans l'une des lignes dans le journal des erreurs, ce qui a attiré mon attention
je pense que
--skip-verrouillage
est une jolie vieille option.Vous pouvez remplacer que dans mon.cnf avec skip-external-locking au lieu
Depuis que vous avez supprimé
--skip-locking
aller trouver datadir dans mon.cnf et assurez-vous que vous êtes en soulignant que les variables où les données mysql est situé.--skip-locking
ligne ne donnent des résultats, mais maintenant en cours d'exécutionmysqld_safe
les résultats dans l'erreurCan't open and lock privilege tables: Table 'mysql.host' doesn't exist
Sons (pour moi) comme vous avez un problème d'autorisations.
Vérifier les permissions sur les répertoires suivants:
Ils doivent tous être de lire/écrire/exécuter pour l'utilisateur mysql et mysql groupe
Lire plus sur installer mise en page: http://dev.mysql.com/doc/refman/5.5/en/macosx-installation-pkg.html#mysql-installation-layout-macosx
mysql_safe script: je pense qu'il peut faire un utilisateur de passer en mode "utilisateur" de mysql.
Lire plus sur: http://dev.mysql.com/doc/refman/5.5/en/mysqld-safe.html
_mysql
, mais j'ai toujours les mêmes résultats.Assurez-vous que votre répertoire de données est accessible en lecture/écriture par mysql.
Essayez d'exécuter
mysqld_safe --skip-locking &
Qui devrait démarrer le serveur en arrière-plan. Puis connectez-vous avec "mysql" .. il ne faut pas demander des informations d'identification.
Vérifier pour voir si vous avez des utilisateurs définis dans la table utilisateur sur la base de données mysql.
Vous peut avoir à ajouter un utilisateur (comme le système de bourses est contourné ci-dessus) à l'aide de :
Quand c'est fait, sortez de la client mysql et faire un
killall -s1 mysqld
.. vous devrez peut-être faire unkillall -s 15 mysqld
pour obtenir le backgrounded travail pour terminer proprement. Merci de ne pas faire un-9
sur les pauvres de l'ancien processus.Emplois/tuer %%, etc peuvent être utilisés en tant que bien.
Il suffit d'exécuter
mysql_install_db
de votre/usr/local
répertoire. Pour plus d'info, voir ce blog.Essayer cette première
Semble que vous avez besoin pour installer et de le laisser créer la chaussette fichier nécessaire
command not found
rails server
.