mysql2 gem compilé pour le mal bibliothèque client mysql
Lorsque vous essayez de vous connecter au serveur mysql via mon application rails, j'obtiens l'erreur suivante
D:/Program_Files/Ruby192/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require':
Incorrect MySQL client library version! This gem was compiled for 6.0.0 but the client library is 5.0.27. (RuntimeError)
Comment puis-je la corriger?
Vous devez vous connecter pour publier un commentaire.
J'ai eu le même problème que vous, ou au moins le symptôme est le même.
Contexte: j'ai été à l'aide de Rails 3, le mysql2 gem, et MySQL community server version 5.5.21 (32 bits) installé en local sur ma machine Windows. J'ai attrapé la bibliothèque client (
libmysql.dll
) à partir de l'installation de MySQL et copié sur mon ruby installation dubin
dossier.Quand j'ai couru
bundle exec rake db:create
, j'ai eu le même message d'erreur que vous et j'ai pensé: "Hé, comment le client peut-il la bibliothèque être dépassée lorsque je l'ai eu à partir de la dernière MySQL version?"Il est utile de message qui s'affiche lorsque vous
gem install mysql2
. Malheureusement, si vous avez installer la gem avec Bundler, Bundler mange le message. Ici, il est:Suivant ces instructions résolu le problème pour moi.
Lien référencé
Désinstallation et réinstallation du gem va souvent de résoudre ce problème sans avoir besoin de télécharger et déplacer des fichiers à la main. À partir de votre application rails répertoire:
Si vous utilisez la version 64 bits de mysql et 32 bits version de ruby, puis vérifier cette solution sur http://blog.mmediasys.com/2011/07/07/installing-mysql-on-windows-7-x64-and-using-ruby-with-it/
En gros, vous avez le téléchargement d'un seul connecteur de site web de mysql, et de compiler mysql ou mysql2 avec connecteur que vous avez téléchargé.
pour Ruby 1.9.2:
pour Ruby 1.9.3: (montrant mysql2 variante)
Notez l'utilisation de barres obliques pour le répertoire où MySQL Connector/C a été extraite.
J'avais une question juste comme ça:
Le problème pour moi est que j'ai eu les deux versions, 5.5.29 et 5.6.17, installé sur ma machine. Je n'ai aucune idée de comment. Quand j'ai inclu automatiquement choisi le 5.5.29 version. J'ai désinstallé que l'on puis réinstallé ma perle rare et qui a résolu le problème.
J'ai découvert un de complètement différent cause de ce problème. J'avais été en utilisant le gem mysql. J'ai construit le mysql2 gem mais j'ai oublié de mettre à jour ma base de données.yml. Avec le mysql2 gem, il doit dire:
plutôt que
Le joyau construit, mais j'ai eu le message d'erreur quand je l'ai ensuite couru râteau.
Évident, une fois que vous l'avez vu, mais vous obtenez le même message d'erreur tel que discuté ici!
Par ailleurs, le commandement de construire le mysql2 gem sur ma machine était un peu plus compliqué que décrit ci-dessus:
À Ajouter à l'existant réponse. ( windows plate-forme spécifiquement )
Ruby suce vraiment sur le dessus de cela. Les Rails ne doivent pas se soucient vraiment de la version du connecteur ou de la version de mysql. - mais c'est mon avis.
Afin d'obtenir cette **ing chose de travail, vous avez besoin de 2 choses.
mysql2 gem
etlibmysql.dll
et vous avez besoin de les adapter en fonction de la version. (cela a causé de la confusion pour moi, parce que je peux voir le dernier connecteur est de 6.x, alors que mysql n'est que de 5.x, comment dois-je les relier)mysql2 gem. et lorsque vous l'installez, vous devez spécifier le connecteur.
il n'a pas besoin d'être connecteur téléchargé à partir d'oracle. vous avez besoin d'une installation de mysql et le
lib
include
dossier-dessous. ensuite, mettre lelibmysql.dll
sousrailsinstaller bin
dossier.si elle n'a pas de travail pour vous faire installer mysql2 gem avec succès => pour mon cas c'est parce que mon mysql est trop vieux (pourquoi ruby soins). donc, je reçois quelques dernières mysql d'oracle. utiliser le
lib
include
libmysql.dll
sous elle. vous n'avez pas vraiment besoin de mettre à niveau votre base de données, vous pouvez les conserver dans un endroit et continuer à l'utiliser après avoir généré les 2 composants requismon cas: j'utilise une très ancienne base de données mysql et je ne suis pas disposé à le mettre à jour pour le moment. donc je sauvegarde la base de données et de la restauration plus tard
dans mon cas sur windows, incorrectement copiés libmysql.dll à partir de MySQL Server 5.5 répertoire ruby200/bin. correcte est de copier libmysql.dll à partir de mysql-connector-c-noinstall-6.0.2-win32.
J'ai eu le même problème , et j'ai résolu le suit:
1 :: Télécharger le zip sur le lien suivant: https://dev.mysql.com/downloads/connector/c/
2 :: décompresser le fichier ( libmysql.dll ) dans le " Fournisseur de" dossier de projet.
3 :: Volve un pour exécuter la commande
bundle install
et de prêt , résolu !
https://dev.mysql.com/downloads/connector/c/