35 votes

Installation de la gemme Ruby MYSQL2 sous Windows 7

J'essaie d'installer la gem mysql2 sur Windows 7. J'ai téléchargé le connecteur à partir du site mysql et placé la libmysql.dll dans ruby200 \ bin.

alors gem installer mysql2

Ce sont les résultats suis-je en train d'être obscurci ici?

 Temporarily enhancing PATH to include DevKit...
Building native extensions.  This could take a while...
ERROR:  Error installing mysql2:
        ERROR: Failed to build gem native extension.

    C:/Ruby200/bin/ruby.exe extconf.rb
checking for rb_thread_blocking_region()... yes
checking for rb_wait_for_single_fd()... yes
checking for rb_hash_dup()... yes
checking for rb_intern3()... yes
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

Provided configuration options:
        --with-opt-dir
        --without-opt-dir
        --with-opt-include
        --without-opt-include=${opt-dir}/include
        --with-opt-lib
        --without-opt-lib=${opt-dir}/lib
        --with-make-prog
        --without-make-prog
        --srcdir=.
        --curdir
        --ruby=C:/Ruby200/bin/ruby
        --with-mysql-dir
        --without-mysql-dir
        --with-mysql-include
        --without-mysql-include=${mysql-dir}/include
        --with-mysql-lib
        --without-mysql-lib=${mysql-dir}/
extconf.rb:37:in `<main>': undefined method `[]' for nil:NilClass (NoMethodError
)


Gem files will remain installed in C:/Ruby200/lib/ruby/gems/2.0.0/gems/mysql2-0.
3.13 for inspection.
Results logged to C:/Ruby200/lib/ruby/gems/2.0.0/gems/mysql2-0.3.13/ext/mysql2/g
em_make.out
 

104voto

Mrk Fldig Points 1131

EDIT 30/09/2014

Lorsque cette réponse a été posté le 64 bits rails installateur n'était pas la version recommandée - il semble maintenant les gens commencent à l'utiliser davantage. Il convient de noter lorsque vous téléchargez le Connecteur MySQL, vous devez télécharger 64 ou 32 bits pour correspondre à la version de rails que vous avez installés.

Étonnamment, j'ai eu de la chance sur une réponse très tôt ce matin, comme j'étais à la recherche de quelque chose d'autre, de nature similaire. Je ne suis pas tout à fait sûr de savoir pourquoi il n'y a pas un seul guide simple pour ce qu'il semble être très simple!

Pour quelque raison, simplement en spécifiant le mysql-dir lorsque vous installez le gem ne ramasse pas avec d'autres sous-répertoires, vous devez définir les paramètres manuellement.

Pour quelqu'un d'autre rencontre le même problème, j'ai fait la suivante:

1) Télécharger le MySql C Connecteur de: http://dev.mysql.com/downloads/connector/c/

REMARQUE Ne pas télécharger le programme d'installation, téléchargez l'ARCHIVE pour votre système d'exploitation

Télécharger le 32 bits ou 64 bits d'ARCHIVE afin de correspondre à la version de rails que vous avez installés.

2) Extraire le fichier à C:\mysql-connector

3) Puis a couru:

 gem install mysql2 --platform=ruby -- '--with-mysql-lib="C:\mysql-connector\lib" --with-mysql-include="C:\mysql-connector\include" --with-mysql-dir="C:\mysql-connector"'

Voila tout fonctionne bien.

EDIT 30/01/2014

J'ai juste eu à faire une nouvelle installation sur un muré de la machine et la commande de l'étape 3 n'a pas fonctionné, ce qui a fait le travail a été:

gem install mysql2 --platform=ruby -- '--with-mysql-dir="C:\mysql-connector"'

Je ne suis pas sûr que la différence est, mais cette fois, il semble être à ramasser les répertoires ok, donc si le premier ne fonctionne pas, essayez celui-ci!

Je pense que cela a à voir avec la façon dont vous allez sur l'installation de rails, cette fois-ci, j'ai utilisé le railsinstaller qui semble définir les chemins d'accès correctement.

Beaucoup des résultats ici semble dépendre de la coque de votre aide, beaucoup de gens ont des problèmes avec powershell donc je ne le conseille pas de l'utiliser. Je l'ai fait dans une invite de commande élevée.

Oh, et enfin, si vous obtenez une erreur concernant la mysql2 gem quand vous faites des RAILS S, vous devez copier les libmysql.dll à partir du répertoire LIB de l'mysql connector vers le répertoire bin où rails a été installé.

7voto

André Herculano Points 676

J'ai essayé la solution de @Mrk Fldig mais il ne fonctionne pas... Donc, ce qui a résolu le problème était le suivant:

  1. Téléchargé la dernière MySQL Installer pour windows 7 32 bits
  2. Installé le bijou avec la commande suivante: gem install mysql2 --platform=ruby -- '--with-mysql-dir="C:/Program Files/MySQL/MySQL Connector C 6.1 6.1.2/"'

Un écueil à être conscient, c'est que j'ai changé les barres obliques inverses (\) à la normale des barres obliques (/). J'ai essayé la même procédure avec les barres obliques inverses et ça ne fonctionne pas.

Le programme d'installation inclut déjà le C connecteurs pour MySQL MySQL Connector C 6.1 6.1.2 répertoire. Par conséquent, de passer uniquement l' --with-mysql-dir paramètre sans le --with-mysql-lib ou --with-mysql-include paramètres, rend le bijou à regarder le même répertoire pour l' lib et include annuaires

6voto

Nebojisa Points 3

Étapes pour Ruby 2.1.3, Windows 8.1 et MySQL Server 5.7. Tous les x64 bits.

  1. Télécharger le kit de développement
  2. Kit de développement extrait.
  3. Exécutez CMD et accédez au répertoire où le kit de développement est extrait.
  4. Run ruby dk.rb init
  5. Run ruby dk.rb install
  6. Run gem install mysql2 -- '--with-mysql-lib="c:\Program Files\MySQL\MySQL Server 5.7\lib" --with-mysql-include="c:\Program Files\MySQL\MySQL Server 5.7\include" --with-mysql-dir="c:\Program Files\MySQL\MySQL Server 5.7"'

1voto

Gediminas Points 647

J'ai essayé toutes les méthodes fournies mais la même erreur apparaît encore et encore :(

Heureusement, l'ancienne version installée sans aucune erreur!

 gem uninstall mysql2
gem install mysql2 -v 0.2.6
 

1voto

Omar M. Points 11

C’est ce qui a fonctionné pour moi pour la même erreur sous Windows 8 64 bits et avec ruby 64 bits.

  1. Téléchargez et installez MySQL Server 5.6 64 bits
  2. Exécutez cette commande:

     gem install mysql2 -v '0.3.16' -- '--with-mysql-lib="c:\Program Files\MySQL\MySQL Server 5.6\lib" --with-mysql-include="c:\Program Files\MySQL\MySQL Server 5.6\include"'
     

J'espère que cela t'aides

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