207 votes

La bibliothèque n'est pas chargé: libmysqlclient.16.dylib d'erreur lorsque vous essayez d'exécuter 'serveur rails" sur OS X 10.6 avec mysql2 gem

J'ai eu du mal avec ce pour un certain temps.

J'ai installé Rails 3, gem, mysql sur mon Snow Leopard machine. Tout allait bien jusqu'à ce que j'ai créé mon premier projet et a essayé de courir

rails server

Lors de l'exécution de ce que j'obtiens:

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$ 

Aussi loin que je peux dire que le problème est avec le mysql2 gem. MySQL semble être en cours d'exécution fine et mon Gemfile références mysql2, ma base de données.fichier yml semble ok aussi.

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 le vieux mysql gem, WEBrick bottes amende. Mais ce n'est pas idéal, est-il?

J'ai tout essayé google peut me donner! Toute aide appréciée.

395voto

luvlss Points 3571

Je n'ai jamais été en mesure d'obtenir l'un de ces réponses à travailler pour moi, mais c'est la commande que j'ai utilisé pour le faire fonctionner pour moi. De cette façon, vous n'avez pas besoin d'utiliser install_name_tool à chaque mise à jour de votre serveur mysql

sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib

93voto

Jonty Brook Points 1667

J'ai résolu ce problème, finalement!

J'ai ré-installé Ruby et Rails en vertu de RVM. Je suis l'aide de version de Ruby 1.9.2-p136.

Après ré-installation sous rvm, cette erreur est toujours présente.

À la fin de la magie de commande qui a résolu, c'était:

sudo install_name_tool -change libmysqlclient.16.dylib /usr/local/mysql/lib/libmysqlclient.16.dylib ~/.rvm/gems/ruby-1.9.2-p136/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle

Espérons que cela aide quelqu'un d'autre!

88voto

nduplessis Points 7777

Ce correctif très bien fonctionné pour moi:

Ajoutez les lignes suivantes à votre ~/.profil

export DYLD_LIBRARY_PATH=/usr/local/mysql/lib:$DYLD_LIBRARY_PATH

http://www.rickwargo.com/2010/12/16/installing-mysql-5-5-on-os-x-10-6-snow-leopard-and-rails-3/

43voto

Luke Points 812

Pour moi, c'était juste parce que j'avais mis à jour mysql, mais n'avait pas mis à jour le mysql2 gem - une réinstallation de la gemme de la corriger...

gem pristine mysql2

28voto

Ogapo Points 411

J'ai le même problème. On dirait qu'il est incapable de trouver le libmysqlclient de la bibliothèque. Une solution temporaire qui a fonctionné pour moi est la suivante:

export DYLD_LIBRARY_PATH=/usr/local/mysql/lib/

Je ne suis pas sûr de l'endroit où la config est en spécifiant le chemin de chargement ou de ce qu'il est défini à mais mon installation de mysql ne semble pas être en elle. Je vais poster à nouveau si je trouve une solution plus permanente.

Edit: En fait cette correction apparaît plus précisément de résoudre le problème.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X