Je lutte avec cela depuis un certain temps.
J'ai installé Rails 3, gem, mysql sur ma machine Snow Leopard. Tout allait bien jusqu'à ce que je crée mon premier projet et que j'essaie de courir
rails server
En exécutant cela, je reçois:
jontybrook$ rails server
/Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle: dlopen(/Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle, 9): Library not loaded: libmysqlclient.16.dylib (LoadError)
Referenced from: /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle
Reason: image not found - /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle
from /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2.rb:7
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:64:in `require'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:64:in `require'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:62:in `each'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:62:in `require'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:51:in `each'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:51:in `require'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler.rb:112:in `require'
from /Users/jontybrook/Dropbox/CODING/simple_cms/config/application.rb:7
from /Library/Ruby/Gems/1.8/gems/railties-3.0.3/lib/rails/commands.rb:28:in `require'
from /Library/Ruby/Gems/1.8/gems/railties-3.0.3/lib/rails/commands.rb:28
from /Library/Ruby/Gems/1.8/gems/railties-3.0.3/lib/rails/commands.rb:27:in `tap'
from /Library/Ruby/Gems/1.8/gems/railties-3.0.3/lib/rails/commands.rb:27
from script/rails:6:in `require'
from script/rails:6
jontybrook$
Pour autant que je sache, le problème vient de la gemme mysql2. MySQL semble fonctionner correctement et mon Gemfile fait référence à mysql2, mon fichier database.yml semble également correct.
L'erreur mentionne
Reason: image not found - /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle
Et encore
jontybrook$ cd /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2
jontybrook$ ls
client.rb em.rb error.rb mysql2.bundle result.rb
MySQL2.bundle est là!?
Si j'utilise l'ancien joyau mysql, WEBrick démarre correctement. Mais ce n'est pas idéal, n'est-ce pas?
J'ai essayé tout ce que Google peut me donner! Toute aide très appréciée.
la source
/usr/lib
, ce lien se résoudra à l'emplacement où il est réellement installé. Sous OS X, c'est généralement sous/usr/local/mysql/lib
, c'est là que cette commande est liée. Si votre bibliothèque est installée à un emplacement différent, vous devrez modifier cette commande. Tapezlocate libmysqlclient.18.dylib
et remplacez le résultat par le premier argument après-s
.WARNING: The locate database (/var/db/locate.database) does not exist. To create the database, run the following command: sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist Please be aware that the database can take some time to generate; once the database has been created, this message will no longer appear.
qu'est-ce qui ne va pas?sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist
). Cela lancera le processus d'indexation de votre disque dur, ce qui fera fonctionner lalocate
commande à l'avenir. Dans la plupart des cas, cependant, je pense que vous n'aurez pas besoin de le faire et que vous pouvez simplement utiliser la commande fournie par luvlss en l'état.J'ai résolu cela, finalement!
J'ai réinstallé Ruby and Rails sous RVM. J'utilise la version 1.9.2-p136 de Ruby.
Après la réinstallation sous rvm, cette erreur était toujours présente.
En fin de compte, la commande magique qui l'a résolu était:
J'espère que ceci aide quelqu'un d'autre!
la source
mysql2-0.2.6/lib/mysql2/mysql2.bundle
là où vos gemmes sont installées.sudo install_name_tool -change libmysqlclient.18.dylib /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/local/rvm/gems/ruby-1.9.2-p180/gems/mysql2-0.3.10/lib/mysql2/mysql2.bundle
Cette correction a très bien fonctionné pour moi:
Ajoutez ce qui suit à votre ~ / .profile
http://www.rickwargo.com/2010/12/16/installing-mysql-5-5-on-os-x-10-6-snow-leopard-and-rails-3/
la source
Pour moi, c'était simplement parce que j'avais mis à jour mysql mais que je n'avais pas mis à jour le joyau mysql2 - une réinstallation du joyau le corrigera ...
gem pristine mysql2
la source
J'ai le même problème. Il semble qu'il ne puisse pas trouver la bibliothèque libmysqlclient. Un correctif temporaire qui a fonctionné pour moi est le suivant:
Je ne sais pas où la config spécifie le chemin de chargement ou ce qu'il est réglé mais mon installation mysql ne semble pas y être. Je publierai à nouveau si je trouve une solution plus permanente.
Modifier: En fait, ce correctif semble résoudre plus précisément le problème.
la source
Ajoutez ce qui suit à votre
~/.bash_profile
:Cela a fonctionné pour moi
la source
Dans la mise à jour OSX El Capitan lorsque vous effectuez cette opération:
il jette une erreur comme
Donc, pour éviter cela, vous pouvez d'abord localiser
libmysqlclient.18.dylib
à l'aide de la commandeDans mon cas, il est revenu
/usr/local/mysql-5.5.24-osx10.5-x86_64/lib/libmysqlclient.18.dylib
Donc, au lieu de
usr/lib/
nous allons créer un lien symbolique pourusr/local/lib/
aimer ceci:Plus de détails: https://forums.developer.apple.com/thread/7935
la source
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/local/lib/libmysqlclient.18.dylib
/usr/local/lib
dossierles lignes suivantes me conviennent. J'utilise mac 10.7.2.
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
la source
Je suis juste tombé sur ce problème. Tout ce que j'avais à faire était de désinstaller mysql2 gem et de le réinstaller. J'espère que cela fonctionne pour d'autres personnes
la source
All versions
à l'invite. J'ai ensuite exécuté la mise à niveau de brew mysql puis gem install mysql2.Voici comment cela a fonctionné pour moi:
J'ai exécuté la commande ci-dessous
sudo install_name_tool -change libmysqlclient.18.dylib /usr/local/mysql/lib/libmysqlclient.18.dylib ~ / .rvm / gems / ruby-1.9.2-p180 / gems / mysql2-0.2.7 /lib/mysql2/mysql2.bundle
Mes environnements:
$ rails -v Rails 3.0.6
$ mysql --version
mysql Ver 14.14 Distrib 5.5.11, pour osx10.6 (i386) en utilisant readline 5.1
$ ruby -v
ruby 1.9.2p180 (2011-02-18 révision 30909) [x86_64-darwin10.7.0]
J'espère que cela aide quelqu'un.
la source
Merci, Ogapo! L'exportation de cet alias a fonctionné pour moi, puis j'ai suivi le lien, et dans mon cas, mysql2.bundle était en place dans /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle so J'ai ajusté l'install_name_tool pour modifier ce bundle plutôt qu'un dans ~ / .rvm et j'ai fait en sorte que cela fonctionne.
Alors maintenant:
la source
salut cela a fonctionné pour moi à partir du lien recommandé de Fredy Andersen
juste dû changer pour ma version de mysql, dans la commande, merci
la source
J'ai résolu ce problème en supprimant mon jeu de gemmes pour mon projet actuel, en le recréant et en réexécutant l'installation du bundle. Je pense que je l'ai causé en installant une nouvelle version de mysql.
la source
J'ai eu ce problème lorsque je travaillais avec Django, j'utilise
brew
pour installer beaucoup de mes programmes Open Source et je devais faire ce qui suit depuis quebrew
j'installaismysql
:Assurez-vous de le remplacer par votre version des bibliothèques!
la source
bundle install mysql --force
m'a aidé. Il a réinstallé les dépendances qui ont disparu à la suite debrew uninstall mysql
.la source
Unknown switches '--force'
Jonty, je me bats avec ça aussi.
Je pense qu'il y a un indice ici:
Remarquez que le chemin vers le dylib est, euh, plutôt court?
J'essaie de comprendre où les instructions d'installation de gemmes laissent de côté le chemin de dylib, mais c'est lent car je n'ai jamais construit de gemme moi-même.
Je posterai plus si j'en trouve plus!
la source
J'ai eu exactement le même problème il y a quelques jours. J'ai finalement réussi à le résoudre. Je ne sais pas trop comment, mais je vais quand même vous dire ce que j'ai fait. Peut-être que cela vous aidera.
J'ai commencé par télécharger RVM. Si vous ne l'utilisez pas encore, je vous recommande fortement de le faire. Il crée essentiellement un bac à sable pour une nouvelle installation distincte de Ruby, RoR et RubyGems. En fait, vous pouvez avoir plusieurs installations simultanément et passer instantanément les unes aux autres. Il fonctionne comme un charme.
Pourquoi est-ce utile? Parce que vous ne devriez pas jouer avec l'installation par défaut de Ruby dans OS X. Le système en dépend. Il est préférable de laisser seule l'installation par défaut de Ruby et RoR et d'en créer une nouvelle à l'aide de RVM que vous pouvez utiliser pour votre propre développement.
Une fois que j'ai créé mon installation Ruby séparée, je viens d'installer RoR, RubyGems et mysql, et cela a fonctionné. Pour les étapes exactes que j'ai prises, voir ma question: Installation de Rails, MySQL, etc. tout va mal
Encore une fois: je ne suis pas certain que cela résoudra votre problème. Mais cela a certainement fait l'affaire pour moi, et dans tous les cas, l'utilisation de RVM est fortement recommandée.
la source
J'ai toujours trouvé qu'avec les solutions ci-dessus, cela ne fonctionnait pas (par exemple) avec le plugin Rails pour TextMate. J'ai eu une erreur similaire (lors de la récupération du schéma de base de données).
Alors qu'est-ce que c'est, ouvrez le terminal:
Remplacez mysql-5.5.8-osx10.6-x86_64 par votre propre chemin (ou mysql).
Cela crée un lien symbolique vers la bibliothèque, maintenant rails s'exécute à partir de la ligne de commande, ainsi que les plug-ins TextMate comme ruby-on-rails-tmbundle .
Pour être clair: cela corrige également l'erreur que vous obtenez lors du démarrage du serveur rails.
la source
Cela se produit généralement lorsque vous mettez à niveau mysql. La gemme mysql2 installée qui a été construite sur les anciennes bibliothèques mysql ne peut pas fonctionner avec les nouvelles bibliothèques. Il suffit de le réinstaller.
Désinstallez mysql2 avec
gem uninstall mysql2
. Installez-le ensuite avecgem install mysql2
la source
Je l'ai résolu en créant un fichier .rvmrc dans mon dossier de projet contenant:
puis entrer dans mon chemin de projet
alors je cours
la source
Ma version de la commande de luvlss:
Mac OSX 10.10.5
MySQL 5.6.27
Passager 5.0.21
sudo ln -s /usr/local/mysql-5.6.27-osx10.8-x86_64/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
Si vous essayez de nombreux liens différents, comme je l'ai fait, nettoyez-les avec:
sudo unlink /usr/lib/libmysqlclient.18.dylib
la source
Ouvrez un terminal et exécutez ce qui suit:
Ça devrait marcher.
la source
Si vous utilisez OSX et avez installé mysql à l'aide de brew, vous pouvez:
Si vous rencontrez des problèmes avec la version (j'avais mysql 5.7 en cours d'exécution alors que ma gemme nécessitait 5.6.25), vous pouvez
la source
Pour moi, j'ai dû désinstaller manuellement mysql
la source