web-dev-qa-db-fra.com

Ruby Installation de la gemme MYSQL2 sur Windows 7

J'essaie d'installer la gemme mysql2 sur Windows 7 J'ai téléchargé le connecteur depuis le site mysql et placé le libmysql.dll dans Ruby200\bin

puis installez gemq mysql2

Ce sont les résultats que je suis sombre 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
35
Mrk Fldig

EDIT 30/09/2014

Lorsque cette réponse a été publiée, le programme d'installation 64 bits Rails n'était pas la version recommandée - il semble maintenant que les gens commencent à l'utiliser davantage. Il convient de le noter lorsque vous téléchargez le connecteur MySQL, vous devez téléchargez 64 ou 32 bits pour correspondre à la version de Rails que vous avez installée.

Étonnamment, j'ai eu la chance de trouver une réponse très tôt ce matin alors que je cherchais autre chose de même nature. Je ne sais pas trop pourquoi il n'y a pas un seul guide simple pour cela car il semble être très simple!

Pour une raison quelconque, le simple fait de spécifier le répertoire mysql lorsque vous installez la gem ne reprend pas avec d'autres sous-répertoires, vous devez donc définir les paramètres manuellement.

Pour toute autre personne rencontrant le même problème, j'ai fait ce qui suit:

1) Téléchargez le connecteur MySql C à partir de: http://dev.mysql.com/downloads/connector/c/

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

Téléchargez l'archive 32 bits ou 64 bits pour correspondre à la version de Rails que vous avez installée.

2) Extrayez le fichier vers 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

Je viens de faire une nouvelle installation sur une machine maçonnée et la commande de l'étape 3 n'a pas fonctionné, ce qui a fonctionné était:

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

Je ne sais pas trop quelle est la différence, mais cette fois, il semble que les répertoires soient corrects, donc si le premier ne fonctionne pas, essayez celui-ci!

Je pense que cela a à voir avec la façon dont vous procédez à l'installation de Rails, cette fois j'ai utilisé le railsinstaller qui semble configurer correctement les chemins.

Une grande partie du résultat ici semble dépendre du Shell que vous utilisez, beaucoup de gens ont des problèmes avec PowerShell, donc je ne conseillerais pas de l'utiliser. J'ai fait cela dans une invite de commande élevée.

Oh et enfin si vous obtenez une erreur concernant la gemme mysql2 lorsque vous faites Rails S vous devez copier le libmysql.dll du répertoire LIB du connecteur mysql dans le répertoire bin où Rails a été installé.

104
Mrk Fldig

J'ai essayé la solution de @Mrk Fldig mais cela n'a pas fonctionné ... Donc, ce qui a résolu le problème était:

  1. Téléchargé le dernier MySQL Installer pour windows 7 32 bits
  2. Installation de la gemme 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 à savoir est que j'ai changé les barres obliques inverses (\) en barres obliques normales (/). J'ai essayé la même procédure avec des barres obliques inversées et cela n'a pas fonctionné.

Le programme d'installation inclut déjà les connecteurs C pour MySQL à MySQL Connector C 6.1 6.1.2 répertoire. Par conséquent, en passant uniquement le --with-mysql-dir paramètre sans le --with-mysql-lib ou --with-mysql-include paramètres, fait que la gemme regarde le même répertoire pour les répertoires lib et include

7
André Herculano

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

  1. Télécharger Kit de développement
  2. Kit de développement extrait.
  3. Exécutez CMD et accédez au répertoire où est extrait le kit de développement
  4. Courir Ruby dk.rb init
  5. Courir Ruby dk.rb install
  6. Courir 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"'
6
Nebojisa

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

Heureusement, une ancienne version installée sans aucune erreur!

gem uninstall mysql2
gem install mysql2 -v 0.2.6
1
Gediminas

C'est ce qui a fonctionné pour moi pour la même erreur sur Windows 8 64 bits et en utilisant 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

1
Omar M.

Pour Cygwin, j'ai pu consolider différentes étapes.

  1. Utilisez cygwin setup.exe pour télécharger gcc, g ++, make, cmake et libmysqlclient-devel (à partir des ports cygwin)
  2. Téléchargez c/connector src pour windows depuis le site mysql. J'ai téléchargé la version 6.x. OR téléchargez la version de libmysqlclient-devel (pas sûr d'où)
  3. unzip
  4. cd dir_connector
  5. Non requis et RISQUE, mais si la version de cygwin libmysqlclient-devel est 5.5.40, changez les versions du fichier dir_connector/VERSION en 5.5.40
  6. mkdir build
  7. construction de cd
  8. commente dtoa dans stdlib.h, sinon la compilation échoue
  9. cmake ..
  10. make
  11. faire installer
  12. gem install mysql2 - --with-mysql-config =/usr/local/mysql/bin/mysql_config
0
ndas

Essayez de suivre ces étapes:

Je suppose:

  • a) vous utilisez windows7
  • b) Ruby 2+ sur C:\Ruby200-x64
  • c) Rails 4+ installé sur Ruby
  • d) WAMP installé sur C:\wamp et en cours d'exécution

1) Désinstallez votre gem myslq2:

$ gem uninstall mysql2

2) Réinstallez la gemme mysql2 avec l'option path:

$ gem install mysql2 -- '--with-mysql-lib="C:\wamp\bin\mysql\mysql5.6.12\lib" --with-mysql-include="C:\wamp\bin\mysql\mysql5.6.12\include"'

3) copiez le libmysql.dll que vous trouvez dans C:\wamp\bin\mysql\mysql5.6.12\lib dans C:\Ruby200-x64\bin

4) ouvrez dans votre Rails application le fichier "Gemfile" et éditez-le en activant mysql2, en ajoutant:

gem 'mysql2'

5) Démarrez votre serveur Rails:

$ Rails server

6) ouvrez votre navigateur et accédez à localhost: 3000 /

0
Edoardo

Voici ce qui a fonctionné pour moi:

gem install mysql2 -- '--with-mysql-dir="C:\wamp\bin\mysql\mysql5.5.xx"'

Je recherche depuis quelques heures et je n'ai pas vu cette variation suggérée, alors j'espère que cela aidera quelqu'un!

0
user1105056

J'ai toujours un problème avec mysql2 gem mais l'approche ci-dessous m'a aidé à installer mysql avec RoR sur Windows Env.

Étape 1: modifications du fichier Gem: ({app}/Gemfile)

Mettre à jour mysql2 -> mysql

Étape 2: mises à jour dans le fichier database.yml ({app} /config/database.yml)

Changer d'adaptateur: mysql2 -> adaptateur: mysql

Hôte: localhost -> Hôte: 127.0.0.1

Étape 3: Téléchargez mysql-connector-c-noinstall-6.0.2-win32

Étape 4: Copiez le fichier mysql-connector-c-noinstall-6.0.2-win32\lib\libmysql.dll dans C:\RailsInstaller\Ruby1.9.3\bin

Étape 5: mise à jour du bundle && Démarrer Rails serveur

0
Prasanth RJ

Programme d'installation de Ruby Rubyinstaller-devkit-2.5.3-1-x64

Connecteur mysql: mysql-connector-c-6.1.11-win32 https://downloads.mysql.com/archives/c-c/?version=6.1.2&os=src

Installation de gemmes: gem install mysql2 --platform = Ruby - --with-mysql-lib = "c:\mysql-connector-c-6.1.11-win32"

0
dnthanh

Essayez également de désactiver votre antivirus avant d'installer la gemme. Le mien a été installé après avoir exécuté la commande suivante:

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

La même commande ne fonctionnait pas lorsque mon antivirus était activé, car il poussait un fichier Ruby dans la poitrine. J'espère que cela aide quelqu'un.

0
hira umair