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 -d mysql

Maintenant rendez vous dans le dossier créé par Rails (à savoir ) et éditez le fichier de configuration que se situe dans le sous dossier config et se nommant database.yml

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 ;-)

20 commentaires

Renaud BELGIUM PHP
Le 28/02/2009 à 11:22

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


 
JegnuX FRANCE Mac OS X Safari 528.16
Le 28/02/2009 à 11:42

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 ;-)


 
Renaud BELGIUM PHP
Le 28/02/2009 à 21:26

Merci,

Ca à l’air bon maintenant


 
Renaud BELGIUM PHP
Le 28/02/2009 à 21:46

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 ?


 
JegnuX FRANCE Mac OS X Safari 528.16
Le 01/03/2009 à 00:35

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 ^^


 
Renaud BELGIUM PHP
Le 01/03/2009 à 09:24

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.


 
Renaud BELGIUM PHP
Le 01/03/2009 à 10:12

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 ;-)


 
Yukilas FRANCE Mac OS X Mozilla Firefox 3.0.6
Le 01/03/2009 à 13:16

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.


 
Tricky FRANCE Mac OS X Safari 528.16
Le 04/03/2009 à 03:23

Bon tutorial : permet d’installer facilement un environnement de dev RoR sur macos x, avec MAMP.

Merci !


 
Zerthis BELGIUM Mac OS X Mozilla Firefox 3.0.10
Le 07/05/2009 à 12:49

Merci pour ce tuto, ça a résolu le problème que j’avais entre rails 2.2 et mysql !

:D


 
julien BELGIUM Mac OS X Safari 531.9
Le 21/11/2009 à 12:32

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


 
JegnuX FRANCE Mac OS X Safari 531.21.10
Le 21/11/2009 à 12:41

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 :-/


 
julien BELGIUM Mac OS X Safari 531.9
Le 21/11/2009 à 12:47

je ne vois pas non plus le dossier include dans /Applications/MAMP/Library/include.

Merci


 
JegnuX FRANCE Mac OS X Safari 531.21.10
Le 21/11/2009 à 13:17

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)


 
julien BELGIUM Mac OS X Safari 531.9
Le 21/11/2009 à 13:33

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


 
JegnuX FRANCE Mac OS X Safari 531.21.10
Le 21/11/2009 à 13:52

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.


 
julien BELGIUM Mac OS X Safari 531.9
Le 21/11/2009 à 13:57

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 …”.


 
JegnuX FRANCE Mac OS X Safari 531.21.10
Le 21/11/2009 à 14:02

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.


 
julien BELGIUM Mac OS X Safari 531.9
Le 21/11/2009 à 14:23

C’est bon maintenant.
J’ai dû faire une mauvaise manip.
Merci !


 
julien BELGIUM Mac OS X Safari 531.9
Le 21/11/2009 à 14:50

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


 

Laisser un commentaire