Je commence juste avec Ruby (et les rails). J'ai fait l'installation selon http://ruby.railstutorial.org/ruby-on-rails-tutorial-book#sec:ruby gems, en utilisant rvm
. J'ai tout fonctionne bien avec sqlite.
Maintenant, j'aimerais essayer de convertir des choses vers MySQL, car c'est ce avec quoi je fais la plupart de mon développement. Dans mon Gemfile, j'ai remplacé sqlite par mysql2:
group :development, :test do
# gem 'sqlite3', '1.3.5'
gem 'mysql2'
gem 'rspec-rails', '2.9.0'
end
Mais lorsque j'essaie de créer la base de données pour les rails dans MySQL, j'obtiens:
$ rake db:create --trace
rake aborted!
dlopen(/Users/username/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundle, 9): Library not loaded: libmysqlclient.18.dylib
Referenced from: /Users/username/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundle
Reason: image not found - /Users/username/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundle
J'ai vu d'autres publications recommandant de réinstaller MySQL via homebrew (le mien a été installé via un DMG téléchargeable), mais je préfère ne pas le faire car j'ai déjà plusieurs autres bases de données pour d'autres projets non ruby.
J'ai en fait le fichier recherché par Rails; il est installé dans /usr/local/mysql/lib/libmysqlclient.18.dylib
. Quelle est la meilleure façon de dire à Rails comment le localiser?
la source
Réponses:
La solution est assez simple; Ajoutez le chemin de la bibliothèque dans votre fichier ~ / .bash_profile ou ~ / .profile:
Si cela ne fonctionne toujours pas (cela fonctionne pour moi):
Il existe de nombreux blogs avec
install_name_tool
, qui ne fonctionneront pas pour moi car je suis sur OSX Lion:la source
.bash_profile
cela ne s'applique pas vraiment.usr/lib
mais un lien symbolique versusr/local/lib
fonctionnera:sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/local/lib/libmysqlclient.18.dylib
À El Capitan, j'ai
ln: /usr/lib/libmysqlclient.18.dylib: Operation not permitted
Dans El Capitan a
/usr/lib/
maintenant un drapeau restreint et ne peut pas être écrit sans désactiver la sécurité, donc je viens de mettre le lien à la/usr/local/lib
place.Le serveur Rails fonctionne à nouveau correctement.
la source
Si le titre de cette question décrit précisément le problème que j'ai rencontré, les circonstances sont différentes de celles décrites dans les réponses précédentes, de même que la solution.
Dans mon cas (El Capitan, mysql installé via homebrew), a
brew update && brew upgrade
provoqué la mise à jour du paquet mysql vers la version 5.7.10 (à partir de la version 5.6.x).La mise
libmysqlclient.18.dylib
à niveau a été remplacée parlibmysqlclient.20.dylib
, mais lemysql2
joyau reposait toujours sur l'ancien.Pour résoudre le problème que j'ai fait:
gem uninstall mysql2 && gem install mysql2
Veuillez noter que des problèmes similaires peuvent survenir avec différentes bibliothèques gérées par homebrew ( voir ma propre réponse à cela, par exemple )
la source
pip uninstall mysqlclient
et ontpip install mysqlclient
également travaillé.Cela a fonctionné pour moi. J'ai installé MySQL à partir d'un fichier dmg.
la source
A travaillé pour moi. Tous les similaires ne l'ont pas fait.
la source
J'ai rencontré ce problème après une suppression complète puis une nouvelle installation de MySQL. Plus précisément:
Je n'avais même pas touché mon application Rails.
La réinstallation de la
mysql2
gemme a résolu ce problème.[MySQL 5.7.10, Rails 4.0.0, Ruby 2.0.0, Mac OS X Yosemite 10.10]
la source
Si vous utilisez MySQL installé à partir de HomeBrew à El Capitan, vous devez le lier comme suit:
la source
Pour MySql 5.6 installé depuis DMG sur Mavericks
la source
Je confirme patch à partir Abhishek fait le travail.
cela fonctionne aussi pour Yosemite.
note: au lieu de créer un lien vers une version particulière de mysql, utilisez le fait que mysql a déjà construit un lien symbolique:
cette solution fonctionne pour Xcode et C API.
la source
Pour ceux qui utilisent de la bière. Liez simplement votre version de mysql avec l'option "--force".
la source
brew link [email protected] --force
. A parfaitement fonctionné.Pour être sûr du lien symbolique nécessaire (dépend de la version de mysql et de la version du système d'exploitation):
et donc :
la source
Cela fonctionne pour moi:
la source
ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/local/lib/libmysqlclient.18.dylib
J'utilise Rails REE (2.3.4) pour un ancien système que nous avons. Après la mise à niveau vers El Capitan, l'exécution du script / de la console a généré une erreur et mon application ne démarre plus (en utilisant pow):
À partir de ce fil, ci-dessus, j'ai déterminé que je devais émettre cette commande dans le terminal:
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
Cette commande a produit une erreur: "ln: /usr/lib/libmysqlclient.18.dylib: Opération non autorisée". Je n'ai jamais vu cette erreur auparavant.
Après un peu de fouille, j'ai trouvé cet article: http://www.macworld.com/article/2986118/security/how-to-modify-system-integrity-protection-in-el-capitan.html et suivi le instructions pour désactiver SIP (la nouvelle protection de l'intégrité du système d'El Capitan). Après avoir désactivé SIP et après le redémarrage, la commande ln a bien fonctionné. Ensuite, j'ai désactivé SIP. Maintenant tout va bien. Mon application s'exécute à nouveau en utilisant pow et aucune erreur en cours d'exécution de script / console. J'espère que ceci vous aide.
la source
Sur Mac Sierra, si vous utilisez Homebrew, procédez comme suit:
la source
et
travaillé pour moi.
la source
Cela a fonctionné pour moi. Tout ce que j'avais à faire est de désinstaller mysql2 gem et de l'installer à nouveau en utilisant les commandes ci-dessous
la source
J'utilise Mac OS et j'étais coincé avec ce bogue même après avoir désinstallé / supprimé tout mysql et MAMP. Auparavant, j'ai installé
brew install mysql
et également utiliséMAMP
. addling softlink n'a pas fonctionné pour moi.Il n'a été résolu qu'en supprimant tous les mysql existants. puis installez mysql via MySQL à partir d'ici .
la source
utilisez ceci depuis votre ligne de commande:
essayé sur quelques ordinateurs avec maverick fonctionne toujours
la source
Si vous utilisez Bitnami RubyStack et que vous rencontrez un problème similaire. Essaye celui-là
la source
Mon problème avec le chargement de ce fichier bundle était un mauvais lien symbolique. Vérifiez donc le lien et remplacez-le par un nouveau si nécessaire. Tout s'est mis en place à ce moment-là. Je ne sais pas comment cela s'est passé, mais c'est le cas. Première fois qu'une erreur de syntaxe s'est produite comme ça.
la source
Je travaillais avec la commande de modèle rails g et j'ai eu cette erreur:
J'ai essayé cela et cela a fonctionné pour moi. J'utilisais Mavericks 10.9.5
Merci!
Maintenant, j'utilise Yosemite 10.10.5 et j'ai eu la même erreur, donc j'ai juste exécuté cette commande sur le terminal et elle a été corrigée avec succès.
vous pouvez également essayer:
Les deux fonctionnent très bien pour moi. J'espère que cela pourrait être utile!
la source
J'ai eu ce problème "Bibliothèque non chargée: libmysqlclient.18.dylib" lors de l'importation de MySQLdb depuis MySQL pour python3 :
La solution fonctionne pour moi: Mac OS X 10.11.1 Python3.5
la source
La seule chose qui a fonctionné pour moi est:
Remplacez les chemins de mysql et gems pour s'adapter à votre système.
la source
Après beaucoup de recherches sur Google et d'essayer tout ce qui précède ... la seule chose qui a résolu mon problème était cette commande:
J'utilise un macbook pro, OSX 10 El Capitan. Darwin xxxx-MacBook-Pro.local 15.6.0 Darwin Kernel Version 15.6.0: jeu 23 juin 18:25:34 PDT 2016; XXX: xnu-3248.60.10 ~ 1 / RELEASE_X86_64 x86_64 Perl: v5.18.2 MySQL: 5.6.19
la source
Merci. Une mise à niveau Homebrew a fait que mes applications Rails ont des problèmes sur mon Mac. J'ai réinstallé MySQL (5.7) à partir des sources, puis j'ai dû le faire
basé sur ce que j'ai lu ci-dessus et dans mon Gemfile
et dans database.yml
la source
Il y a déjà beaucoup de réponses à cette question, en particulier celle-ci https://stackoverflow.com/a/10847618/5515861 . Je veux seulement ajouter quelques notes. Si vous utilisez Mac, je ne sais pas comment vous installez MySQL, mais la première chose à examiner est de savoir où se trouve votre installation MySQL. Pour moi, MySQL est installé en utilisant
brew
for version5.7
, et l'emplacement est/usr/local/opt/[email protected]/
, alors ajoutez ce qui suit à mon~/.zshrc
.J'espère que vous résolvez vos problèmes 😁
la source