JeuWeb - Crée ton jeu par navigateur
Impossible d'installer mysql2 sous Rails - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Impossible d'installer mysql2 sous Rails (/showthread.php?tid=5085)



Impossible d'installer mysql2 sous Rails - My Hotel - 29-08-2010

Salut à tous

J'essaie depuis peu Ruby, et son framework RoR. Vu que je maîtrise les bases du langage Ruby, j'ai voulu installer Rails, histoire de commencer à bidouiller.

Je me base sur le guide du site officiel : http://edgeguides.rubyonrails.org/getting_started.html

Donc j'ai Ruby 1.9.1 d'installé, je fais un gem install rails, tout se passe bien. Mysql 5.5 est déjà installé sur mon PC, bien sûr.
Je lance mon premier projet, que je configure pour mysql (donc adapter: mysql2 dans database.yml). J'ai aussi fait le bundle install comme dans le guide.

Et là, je veux lancer le serveur, j'ai une belle erreur
Citation :Could not find gem 'mysql2 (>= 0, runtime)' in any of the gem sources.
Try running `bundle install`.

OK, je refais un bundle install, je lance le serv, toujours la même erreur. Alors je fais un "gem install mysql2". Et là :
Citation :Building native extensions. This could take a while...
ERROR: Error installing mysql2:
ERROR: Failed to build gem native extension.

C:/Ruby191/bin/ruby.exe extconf.rb
checking for rb_thread_blocking_region()... *** 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:/Ruby191/bin/ruby
C:/Ruby191/lib/ruby/1.9.1/mkmf.rb:364:in `try_do': The complier failed to generate an executable fil
e. (RuntimeError)
You have to install development tools first.
from C:/Ruby191/lib/ruby/1.9.1/mkmf.rb:417:in `try_link0'
from C:/Ruby191/lib/ruby/1.9.1/mkmf.rb:421:in `try_link'
from C:/Ruby191/lib/ruby/1.9.1/mkmf.rb:529:in `try_func'
from C:/Ruby191/lib/ruby/1.9.1/mkmf.rb:774:in `block in have_func'
from C:/Ruby191/lib/ruby/1.9.1/mkmf.rb:670:in `block in checking_for'
from C:/Ruby191/lib/ruby/1.9.1/mkmf.rb:276:in `block (2 levels) in postpone'
from C:/Ruby191/lib/ruby/1.9.1/mkmf.rb:250:in `open'
from C:/Ruby191/lib/ruby/1.9.1/mkmf.rb:276:in `block in postpone'
from C:/Ruby191/lib/ruby/1.9.1/mkmf.rb:250:in `open'
from C:/Ruby191/lib/ruby/1.9.1/mkmf.rb:272:in `postpone'
from C:/Ruby191/lib/ruby/1.9.1/mkmf.rb:669:in `checking_for'
from C:/Ruby191/lib/ruby/1.9.1/mkmf.rb:773:in `have_func'
from extconf.rb:9:in `<main>'


Gem files will remain installed in C:/Ruby191/lib/ruby/gems/1.9.1/gems/mysql2-0.2.3 for inspection.
Results logged to C:/Ruby191/lib/ruby/gems/1.9.1/gems/mysql2-0.2.3/ext/mysql2/gem_make.out

Alors je me balade un peu sur le net, j'ai essayé diverses solutions, mais rien ne fonctionne. Je me tourne donc vers les pros du forum Wink

Merci d'avance.

Bye


RE: Impossible d'installer mysql2 sous Rails - Sephi-Chan - 29-08-2010

Décidément, Ruby sous Windows, c'est vraiment chiant !
Essaye d'utilise l'adapter MySQL classique : mysql.

Avec un fichier database.yml du style :


development:
adapter: mysql
encoding: utf8
reconnect: false
database: ohmyraid_development
pool: 5
username: root
password:
socket: /tmp/mysql.sock

Et un Gemfile comme :


gem 'rails', '3.0.0.rc2'
gem 'haml'
gem 'mysql'

Et lance l'installation avec bundle install, pas de gem install manuel. Et pense aussi à coller le retour de ta commande gem list.


Sephi-Chan


RE: Impossible d'installer mysql2 sous Rails - srm - 29-08-2010

Bah c'est surtout une faille de gem je trouve, moi j'ai pu contourner pour plusieurs packets en installant ce qu'il faut, mais c'est le bordel. Il devrait te livrer des drivers déjà compilé au lieu de vouloir les compiler sur ta machine.


RE: Impossible d'installer mysql2 sous Rails - My Hotel - 29-08-2010

Alors, merci de ta réponse. J'ai modifié mon database.yml pour mettre mysql, et relancer un bundle install avec le nouveau gemfile.

Ma commande gem list donne :
Citation :abstract (1.0.0)
actionmailer (3.0.0.rc2, 2.3.8)
actionpack (3.0.0.rc2, 2.3.8)
activemodel (3.0.0.rc2)
activerecord (3.0.0.rc2, 2.3.8)
activeresource (3.0.0.rc2, 2.3.8)
activesupport (3.0.0.rc2, 2.3.8)
arel (1.0.1, 1.0.0.rc1)
builder (2.1.2)
bundler (1.0.0.rc.6)
erubis (2.6.6)
ffi (0.6.3 x86-mingw32)
haml (3.0.17)
i18n (0.4.1)
mail (2.2.5)
mime-types (1.16)
mysql (2.8.1 x86-mingw32)
polyglot (0.3.1)
rack (1.2.1, 1.1.0)
rack-mount (0.6.12)
rack-test (0.5.4)
rails (3.0.0.rc2, 2.3.8)
railties (3.0.0.rc2)
rake (0.8.7)
sqlite3 (0.1.1)
sqlite3-ruby (1.3.1 x86-mingw32)
thor (0.14.0)
treetop (1.4.8)
tzinfo (0.3.23)

Cette fois-ci, je lance le serveur sans aucun souci (rails server), mais quand j'arrive sur la page par défaut, et que je fais About your application’s environment, j'ai droit à
Citation :Can't connect to MySQL server on 'localhost' (10061)

Mais bon, c'est déjà mieux. C'était tout con, mais quelle est la différence entre mysql2 et mysql?

Merci, bye


RE: Impossible d'installer mysql2 sous Rails - Sephi-Chan - 29-08-2010

Oui, maintenant c'est tout bête : il te suffit de lancer MySQL.
Je ne connaissais pas la gem mysql2, je viens de la découvrir sur Github (http://github.com/brianmario/mysql2).
Une discussion sur Stack Overflow en parle.


Sephi-Chan


RE: Impossible d'installer mysql2 sous Rails - My Hotel - 29-08-2010

Perso, je connaissais pas mysql1, alors c'est pire Smile Mais la 2 s'est installée automatiquement, donc faudra bien y passer un jour.

En tout cas, tout fonctionne, merci de ton aide Smile

Bye

EDIT : oxman, j'avais manqué ton message. Ça me rassure de savoir que c'est gem qui déconne, mais s'il faut tout faire à la main, je crois que je vais rester sur mysql...