Problème d'installation de mysql gem sur Snow Leopard: uninitialized constant MysqlCompat::MysqlRes
J'ai un problème en essayant d'installer le Ruby mysql gem pilote.
J'ai récemment mis à niveau vers Snow Leopard et ne le Hivelogic manuel d'installation de MySQL. Tout cela semble bien fonctionner comme je peux accéder à mysql à partir de la ligne de commande et apporter des modifications à la base de données.
Mon problème est que si j'utilise maintenant
rake db:migrate
J'obtiens:
rake aborted!
uninitialized constant MysqlCompat::MysqlRes
(See full trace by running task with --trace)
Maintenant, il semble que mon mysql gem n'est pas fonctionner correctement tant que je peux accéder à MySQL amende de Python en utilisant le pilote Python (que j'ai compilé). J'ai donc essayé de reconstruire le bijou à l'aide de la commande suivante à partir de ce site: http://techliberty.blogspot.com/, (d'ailleurs je suis en utilisant un récent Intel MacBook Pro):
sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
Cette compile bien que je n'ai Pas de définition de la documentation:
Building native extensions. This could take a while...
Successfully installed mysql-2.8.1
1 gem installed
Installing ri documentation for mysql-2.8.1...
No definition for next_result
No definition for field_name
...
Je suis un peu perplexe que mon mysql_config est situé au bon endroit:
/usr/local/mysql/bin/mysql_config
Et j'ai supprimé toutes les autres instances de mysql gem, à partir de mon système.
Toutes les suggestions sont grandement appréciés. Merci beaucoup.
PS j'ai vu ce post précédent uninitialized constant MysqlCompat::MysqlRes (à l'aide de mms2r gem) mais il ne semble pas applicable pour ma version.
OriginalL'auteur emson | 2009-12-22
Vous devez vous connecter pour publier un commentaire.
Fondamentalement le problème, c'est la dynamique de la bibliothèque de libmysqlclient ne peut pas être trouvé. Les solutions ci-dessus ne fonctionne, mais vous devez réappliquer tout le temps de vous reconstruire la gemme, ou lorsque vous installez une nouvelle version de MySQL.
Une approche alternative est d'ajouter la base de données MySQL répertoire contenant la bibliothèque à votre charge dynamique chemin. Mettre la suite dans mon .bashrc fichier a résolu le problème:
Vous êtes un prince parmi les hommes! Merci Steven!
OriginalL'auteur Steven Chanin
OK, j'ai finalement résolu ce problème.
La raison de ce qui se passait, fut que j'avais deux versions de Ruby installé.
Ces deux versions en conflit et signifiait que lorsque j'ai jamais essayé d'installer la gem MySQL avec le bon ARCHFLAGS le système de pensée, j'ai été en utilisant une autre version de Ruby.
La solution était assez simple:
Recompiler le gem MySQL avec le bon ARCHFLAGS:
sudo env ARCHFLAGS="-arch x86_64" gem install --no-rdoc --no-ri mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
Une fois que je l'avais fait tout a bien fonctionné.
Espérons que cela fonctionne pour vous.
B
aussi recompilé avec commande et fonctionne bien. Je vous remercie.
OriginalL'auteur emson
Après avoir lutté avec ce problème pendant plusieurs jours, j'ai finalement obtenu cloué. 2 choses que j'ai fait qui l'a fait fonctionner:
Je suis un peu surpris de voir que #2 a été mentionné par Steven Chanin.
Je suis sur Snow Leopard, et ont seulement 1 MySQL (x86_64) 5.5, et 1 rubis (préemballé avec Snow Leopard) installé.
OriginalL'auteur Kenneth Jiang
Bien, je suis un newbie. Après avoir lutté pendant un certain temps et depuis aucun des ci-dessus a travaillé pour moi, j'ai pensé que le problème était dû à mon "mysql" étant une installation 64 bits alors que ruby était de 32 bits.
Vérifiez auprès de ces commandes
Les deux doivent correspondre à Mach-O 64-bit exécutable x86_64 ou Mach-O 64-bit exécutable i386.
J'ai installé une version 32 bits de mysql, réinstallé ruby à partir de la source et rails de choses ont été fonctionne parfaitement depuis.
Je suis sur Leopard btw.
J'ai donné à lui/elle un upvote pour vous.
OriginalL'auteur Sudhir
J'ai appliqué les instructions de hivelogic post mais avec la version 5.1.41 de MySQL. Et pour le joyau de l'installation j'ai fait 2 choses:
Et les choses beaucoup travaillé pour moi.
u ne essayez avec la version 5.1.41? aussi avant que assurez-vous de supprimer tout sur /usr/local/mysql de ne pas mélanger le fichier build.
OriginalL'auteur khelll
Même problème ici; ont été confrontées à ce pendant plus de deux semaines!
Je ne suis pas le ROR expert, mais de l'autre plus de personnes bien informées qui a trouvé une solution, le problème semble pointer le Ruby Gem pour mysql, qui, apparemment, mal s'installe sur le Mac.
Je vais continuer à étudier à l'Ruby Forge site, et de voir si Ruby Gem gourous pouvez corriger cette horrible bug....J'ai besoin de mon Rails de travail! Le temps c'est de l'argent!
J'ai donc signalé ce bug à la RubyForge développeurs de Mysql de suivi des bogues page.
Bien sûr, j'espère qu'ils peuvent aider, comme c'est rédhibitoire mon projet en cours.
Et si quelqu'un d'autre peut soutenir mon rapport de bug là-bas, peut-être qu'il va obtenir plus d'attention; s'il vous plaît carillon!
OriginalL'auteur rixter
Après rayonnages de ma tête avec le problème, j'ai aussi trouvé que le problème venait de multiples binaires de la même gem mysql version installée. La suite, il fixe pour moi.
Ensuite, j'ai recompilé le gem mysql à partir des sources sur mon Snow Leopard machine, et tout était parfait avec le monde.
OriginalL'auteur Manu R
Cela peut être un problème de version de Mysql. Vous devez installer la version la plus stable (MYSQL 5.1). Voir mon blog : http://geryit.com/blog/2011/01/installing-mysql-with-rails-on-mac-os-x-snow-leopard/
OriginalL'auteur goksel
Il ya une chance que vous avez suivi les instructions ci-dessus, mais j'ai oublié de tuer le serveur avant de réinstaller Mysql. Cela ne fera pas le message d'erreur s'en aller. Ce qui m'est arrivé.
Après avoir essayé toutes les différentes options ici, j'ai essayé le suivant:
Fondamentalement, de tuer le serveur.. à la dure. Ensuite, redémarrez le serveur.
OriginalL'auteur Vishal Patel
Si vous utilisez MySQL 5.5, ce sont les mesures qui fait le travail pour nous:
De commande pour installer mysql-2.8.1:
De commande mysql-2.8.1 travailler avec mysql 5.5:
Espère que ça aide!
OriginalL'auteur ryattaken
J'ai travaillé assez dur de se cette résolution pour le dernier jour et j'ai enfin compris. Je suis sous snow leopard et fait une nouvelle rails et d'installation de mysql. La seule façon que j'ai de ce travail était d'installer la version 64 bits de mysql à partir de la dmg (pas macports) et de redémarrer ma machine en mode 64 bits, par la tenue de la "6" et "4" touches enfoncées pendant le démarrage. J'ai ensuite installé le joyau, mon DB hôte local et cela a fonctionné comme un champion.
OriginalL'auteur jonathan simon
Plusieurs problèmes sont liés à obsolètes ou plusieurs contradictoires binaires de rubis et de pierres précieuses. J'ai moi-même eu le problème de façon "transparente" compiler mysql gem avec le système de ruby, tout en essayant d'obtenir mon code à exécuter avec ruby 1.9. Après avoir essayer de comprendre le problème grâce à ce thread, tout s'est bien passé.
Pour éviter ces problèmes et pour les enregistrements, le RVM trousse d'outils peut être très pratique: http://rvm.beginrescueend.com. Il contribue à la bonne gestion de plusieurs versions rubis, et il gère habilement les gemmes pour toutes les versions sans en conserver une copie pour chaque version.
Il semble que l'utilisation de RVM peut aider à éviter plusieurs questions dans ce thread.
OriginalL'auteur Eric Platon
Au cas où quelqu'un est à l'aide de rvm avec ruby 1.8.7 et mysql x86 (32 bits version) et ont ce problème. Vous trouverez ce lien utile: http://rvm.beginrescueend.com/integration/databases/ . Vous aurez besoin d'installer mysql en version x86_64 version et ensuite installer le gem mysql avec le archflags ensemble pour x86_64. La raison en est que même si vous essayez d'installer la gem comme x86 pour correspondre à votre mysql x86. Cependant la version de ruby est en 64 bits. Si vous avez vraiment besoin d'avoir tous les trois match: Ruby, mysql et mysql gem. De sorte que le moyen le plus facile est d'avoir tous en 64 bits.
OriginalL'auteur Leo Chan
Très rapide fix pour moi.
Ce problème a surgi de nouveau sur moi cette semaine sur une machine de développement, je n'avais pas utilisé pendant un certain temps. Comme indiqué à l'Étape 2 de emson réponse initiale, il ne demandait qu'une recompilation des gem MySQL avec le bon ARCHFLAGS:
OriginalL'auteur imarichardson
J'ai eu ce problème, ou au moins à une question (Hivelogic n'était pas impliqué et ce n'était pas une mise à niveau, mais plutôt d'un nouveau système). Je suis d'accord que c'est probablement un 64 bits question. J'ai un lien pour vous, qu'après tous les autres de la tête et la crosse à gratter que j'ai fait, enfin sauvé mon cul (et le cerveau).
[http://forums.mysql.com/read.php?116,359591,359591]
Meilleur de la chance d'avoir passé cette configuration BS et à peu de codage.
OriginalL'auteur SethRocker
Après avoir cherché pendant un long moment sur la résolution de ce problème particulier, et essayer toutes les options ci-dessus (et les options sur beaucoup d'autres sites), mais sans succès, j'ai enlevé mon mysql-5.5 installer et installé mysql-5.1. Tout d'un coup, et avec un peu de la au-dessus de l'aide pour compiler les versions 64 bits, j'ai enfin réussi à installer un travail mysql gem.
Donc, si vous rencontrez ce problème et sont en cours d'exécution mysql 5.5, essayez de dégradant pour mysql 5.1.
OriginalL'auteur Anthony Liekens
J'ai eu le même problème. J'avais installé mysql (dans mon cas, 5.1.48 64-bit pour Snow Leopard) dans /usr/local/mysql/actuel/, et non pas dans /usr/local/mysql. Toutefois, le client mysql éclat de la bibliothèque (libmysqlclient.16.dylib) avait un chemin de /usr/local/mysql/lib/libmysqlclient.16.dylib incorporé.
Après plusieurs tentatives avortées pour résoudre ce à l'aide de install_name_tool, ce qui a fonctionné a été à la fois modifier le chemin d'accès dans la bibliothèque partagée comme suit, puis reconstruire la base de données mysql 2.8.1 rubygem, en précisant à la fois mon:
Noter que ceci est basé sur mysql installé dans /usr/local/mysql/actuel, vous aurez besoin de modifier les chemins d'accès approprié pour votre système.
OriginalL'auteur Pete Clark