Tout d’abord il faut savoir que les développeurs de ROR (Ruby on Rails) recommandent l’utilisation de SQLite pour les projets en Rail. Ceci dit, MySQL est quand même largement utilisé sur le Web et donc quand on souhaite developper en local avant de mettre sur le serveur, il nous faut aussi MySQL.
Les utilisateurs de Mac utilisent souvent MAMP qui permet d’installer Apache et MySQL de façon très simple, sauf qu’à la base c’est pour utiliser du PHP. Ici nous allons voir comment utiliser MAMP afin d’avoir une base de donnée MySQL pour notre projet Ruby on Rails.
Tout d’abord il va falloir télécharger MAMP ainsi que ses sources. Pour cela rendez-vous sur la page SourceForge de MAMP. Selectionnez la dernière version (pour le moment c’est la 1.7.2) et téléchargez les deux fichiers associés (MAMP_x.x.x.dmg.zip et MAMP_x.x.x_src.zip ).
Maintenant commencez par installer MAMP : vous décompressez l’archive MAMP_x.x.x.dmg.zip, vous ouvrez le .dmg et vous glissez-déposez le dossier MAMP dan votre dossier /Applications.
Une fois cela fait vous pouvez décompresser l’archive contenant les sources (MAMP_x.x.x_src.zip). Ensuite ouvrez le Terminal et déplacez vous dans le répertoire créé avec la commande cd.
Dès que vous êtes dans le répertoire qui s’appelle MAMP_x.x.x_src exécutez les commandes suivantes :
tar -xzvf mysql-5.0.41.tar.gz cd mysql-5.0.41 |
Bien sûr si vous avez une version plus récente de MySQL il faudra adapter, le plus simple étant de taper “mysql-” puis d’appuyer sur tabulation. Maintenant il va falloir configurer et compiler MySQL, entrez ces commandes :
./configure --with-unix-socket-path=/Applications/MAMP/tmp/mysql/mysql.sock --without-server --prefix=/Applications/MAMP/Library make -j2 |
On va ensuite copier les librairies compilées dans MAMP :
cp libmysql/.libs/*.dylib /Applications/MAMP/Library/lib/mysql mkdir /Applications/MAMP/Library/include cp -R include /Applications/MAMP/Library/include/mysql |
Et maintenant on peut installer MySQL pour Ruby via Gem :
sudo env ARCHFLAGS="-arch i386" gem install mysql -- --with-mysql-config=/Applications/MAMP/Library/bin/mysql_config |
Vous devriez avoir un beau :
Building native extensions. This could take a while... Successfully installed mysql-2.7 1 gem installed |
Voilà, MySQL est désormais prêt pour Ruby =)
Maintenant voyons comment créer un nouveau projet Rails tout en le configurant pour utiliser MySQL. Quand vous créez le projet Rails avec la commande rails il va falloir rajouter une option pour spécifier que vous allez utiliser une base de donnée MySQL. La bonne commande est donc rails
Maintenant rendez vous dans le dossier créé par Rails (à savoir
Et modifiez le pour le faire correspondre à ceci :
development: adapter: mysql encoding: utf8 database: <nom_du_projet>_development pool: 5 username: root password: root host: localhost socket: /Applications/MAMP/tmp/mysql/mysql.sock |
Libre à vous de mettre les mêmes paramètres pour les catégories test et production.
Voilà cet article est terminé, et j’espère qu’il vous sera utile. Si jamais vous bloquez à un endroit ou que vous avez des questions, n’hésitez pas ;-)
Bonjour,
j’ai un problème au niveau de la ligne
./configure –with-unix-socket-path=/Applications/MAMP/tmp/mysql/mysql.sock –without-server –prefix=/Applications/MAMP/Library
le terminal me dit :
checking build system type… i686-apple-darwin9.6.0
checking host system type… i686-apple-darwin9.6.0
checking target system type… i686-apple-darwin9.6.0
checking for a BSD-compatible install… /usr/bin/install -c
checking whether build environment is sane… yes
checking for gawk… no
checking for mawk… no
checking for nawk… no
checking for awk… awk
checking whether make sets $(MAKE)… no
checking “character sets”… default: latin1, collation: latin1_swedish_ci; compiled in: latin1 latin1 utf8
checking whether to compile national Unicode collations… yes
checking whether build environment is sane… yes
checking whether make sets $(MAKE)… (cached) no
checking for gawk… (cached) awk
checking for gcc… no
checking for cc… no
checking for cc… no
checking for cl… no
configure: error: no acceptable C compiler found in $PATH
See `config.log’ for more details.
Merci de m’aider
Il semblerait qu’il te manque pas mal d’outil de compilation (make, gcc etc…)
Il faut que tu installe les Developer Tools de Leopard qui sont sur ton DVD d’installation ou quelque part sur http://developer.apple.com/ si tu souhaite avoir les dernières version d’Xcode et tout les autres outils (je te le conseille ;-)
Normalement ça installera tout les outils qu’il te manque. Ensuite tu pourra recommencer là où ça bloquait, à savoir le “./configure [...]”
Si tu as encore des soucis n’hésite pas ;-)
Merci,
Ca à l’air bon maintenant
Autre problème :(
lorsque je tape rake db:migrate à la racine de mon projet, j’obtiens ceci :
(in /Users/bubu_unam3d/Documents/Sites/PFE/ViseMode)
rake aborted!
Client does not support authentication protocol requested by server; consider upgrading MySQL client
(See full trace by running task with –trace)
Merci d’avance.
PS aurais-tu des tutos intéressant sur RoR ?
Hum je n’ai jamais eu ce problème, je ne vois pas trop de quoi ça peut venir :-/
As tu bien modifier le fichier config/database.yml afin d’utiliser le bon chemin pour la socket ?
Es tu sur que les identifiants que tu as mis dans le fichier config/database.yml sont bon ?
Afin d’avoir plus d’infos, essai d’exécuter plutôt la commande
rake db:migrate –trace
Par contre copie-colle le résultat sur ce site et passe moi le lien car ça risque d’être long ^^ http://pastie.org/
Sinon pour les tutos sur RoR, je n’ai pas trouvé grand chose, les livres qui existent sont déjà obsolète donc ils ont un intérêt limité, et la doc française semble aussi peu fournie. Bon après je n’ai sûrement pas assez cherché, mais j’ai préféré me rabattre sur la documentation officielle. Quelques liens :
Wiki : http://tinyurl.com/dd225p
Wiki français (traduction partielle) : http://tinyurl.com/amfhke
Getting Started : http://tinyurl.com/6npdgo
Normalement avec tout ça tu devrais t’en sortir, c’est en tout cas ma principale source d’infos pendant mon apprentissage.
Et oui, il faut savoir que je débute avec Ruby et Ruby on Rails, j’ai commencé il y a deux semaines environs et en période de stage + révisions c’est pas facile de trouver le temps de coder un peu. Obligé de prendre sur les heures de sommeil ^^
mon fichier database.yml est correct :
adapter: mysql
encoding: utf8
database: ViseMode_development
pool: 5
username: root
password: root
host: localhost
socket: /Applications/MAMP/tmp/mysql/mysql.sock
Mais apparemment il semble ne pas trouver le sock alors qu’il est bien là :s
Voici le lien de Pastie : http://pastie.org/403665
Sur le temps de travail je te comprend, je suis moi aussi en stage et je n’ai que les week end pour travailler sur mon projet de fin d’étude.
Ok j’ai ciblé d’où provenait l’erreur, en faite mysql 5.0 utilise un autre algorithme de hack donc j’ai créer un nouvelle utilisateur de base de donnée mais sans mot de passe et apparemment ça marche maintenant. Mais bon quand je passerais en production il me faudra un mot de passe donc j’aurais quand même le problème par après :(
Je pense que la version mysql que j’ai pour ruby est la 2.7 :s Comment la mettre à jour ?
En attendant je vais aller tester si ça marche bien, croisont les doigts ;-)
Jolie tuto, je viens de tester et ça fonctionne bien ;)
Moi j’avais installé mysql sans MAMP dans un premier temps, mais c’est vrai que c’est plus pratique comme ça.
Bon tutorial : permet d’installer facilement un environnement de dev RoR sur macos x, avec MAMP.
Merci !
Merci pour ce tuto, ça a résolu le problème que j’avais entre rails 2.2 et mysql !
:D
bonjour,
j’ai telechargé la meme version de mamp que toi.
j’ai un problème lors de cette ligne:
cp libmysql/.libs/*.dylib /Applications/MAMP/Library/lib/mysql
En fait il me trouve pas le dossier .libs.
Est ce normal?
Merci
Non ce n’est pas normal, surtout si tu as prit la même version que moi…
Là je vois pas trop de quoi ça pourrait venir :-/
je ne vois pas non plus le dossier include dans /Applications/MAMP/Library/include.
Merci
Pour le dossier include c’est normal, tu es censé le créer avec cette commande qui est dans le tuto :
mkdir /Applications/MAMP/Library/include
(mkdir = make directory)
ok.
Dans mon dossier libmysql, j’ai que ces fichiers :
CMakeLists.txt conf_to_src.c libmysql.ver.in
Makefile dll.c manager.c
Makefile.am errmsg.c mytest.c
Makefile.in get_password.c password.c
Makefile.shared libmysql.c
client_settings.h libmysql.def
C’est peut être une histoire de fichiers cachés?
Merci
Attends…
Est ce que c’est quand tu entres la ligne
cp libmysql/.libs/*.dylib /Applications/MAMP/Library/lib/mysql
dans ton terminal qu’il te dit que .libs n’existe pas, ou bien tu déduis qu’il n’existes pas car tu es allé voir dans le Finder ?
Si c’est parce que tu es allé voir dans le Finder, alors oui c’est normal, un fichier ou dossier qui commence par un point est un fichier caché. Mais la commande cp est quand même censée fonctionner.
Je ne suis pas allé dans le finder.
Je suis dans la console dans le dossier mysql-5.0.41et je tape la commande.
IL me dit “no such file …”.
reprend le tuto depuis le début et tu me copie colle tout le contenu de ton terminal sur http://www.friendpaste.com/ et tu me donnes le lien.
C’est bon maintenant.
J’ai dû faire une mauvaise manip.
Merci !
J’ai du mal à lier MAMP et Rails.
En fait mon MAMP est accessible sur le port 8888 de localhost et mon appli rails sur le port 3000.
Donc impossible de les lier.
COmment faire stp?
Merci