Le blog de la CT2C

Configurer son pare-feu pour faire fonctionner Ruby on Rails avec MySQL sous Windows 7

Par Kulgar , publié le 4 Décembre 2012

Bonjour à tous !

Je vous propose un petit tutoriel pour faire fonctionner Ruby On Rails 3 avec MySQL sous windows 7 avec un pare-feu autre que celui de base de Windows (ici il s'agit de Norton, mais les démarches ne changent pas vraiment avec un autre pare-feu).

A l'heure où j'écris, voici les versions de mes logiciels :
- MySQL Server, version 5.5
- Ruby, version 1.9.2
- Rails, version 3.0.9
- Windows 7, version SP1
- Norton Internet Security, version 18.6.0.29

Je précise car les choses pourraient être différentes avec d'autres versions de ces logiciels.

Pour ce tutoriel, je suppose que vous avez déjà créé un projet Ruby On Rails. Par défaut, le projet utilise le système de gestion de base de données SQLite 3, mais la plupart des hébergeurs Web proposent uniquement MySQL. Je vous conseille donc de configurer votre application Rails pour qu'elle fonctionne avec MySQL dès le départ. Il est plus simple d'aller de MySQL vers SQLite 3 que le contraire.

Commençons le tutoriel sans plus attendre.

Mettre en place MySQL sous Windows


Avant toutes choses, il vous faut télécharger MySQL. Ca tombe bien, sur le site (anglais uniquement), on peut télécharger un installer windows (msi) comprenant :

Le serveur MySQL
MySQL Workbench
Des documentations
Des examples de base de données

Et bien d'autres choses. Vous trouverez cet installeur sur cette page : Download MySQL InstallerUne fois téléchargé, lancez-le et suivez les étapes. Dans Setup Type, choisissez ce qui vous convient le mieux, normalement "Developer Default" devrait suffire.

Remarque : Il se peut qu'on vous demande de mettre à jour des logiciels propres à Windows afin de pouvoir lancer le .msi correctement. De même, pendant l'installation, l'installeur vérifiera les versions des logiciels dont il a besoin pour fonctionner correctement et vous indiquera quels logiciels vous devrez installer / mettre à jour.
Tout ça se passe normalement sans aucun problème jusqu'à la configuration du serveur MySQL. Si vous avez un Pare-feu autre que celui de Windows, vous aurez sûrement une erreur du type "impossible de paramétrer le pare-feu". Hors votre Pare-feu s'il n'est pas configuré correctement, bloquera le lancement du serveur. Pour débloquer ce lancement, il vous faut ajouter une règle de filtrage dans votre pare-feu. N'ayant que Norton sur mon système, je vais donner la marche à suivre pour ce FireWall, sachant que la règle de filtrage devrait fonctionner avec un autre pare-feu.

Configurer le pare-feu Norton


Pour les Nortoniens, ouvrez le panneau de Norton, cliquez sur "paramètres", puis "paramètres réseau". Allez tout en bas de la liste des paramètres réseau, vous devriez y trouver une section "pare-feu intelligent". Cliquez sur "configurer" à côté de "Paramètres avancés". Puis cliquez sur "configurer" à côté de "Règles générales".

Cliquez sur "Ajouter" pour ajouter une règle.

Dans l'onglet "Action", cliquez sur "Autoriser".
Dans l'onglet "Connexion", choisissez "connexions à et depuis" d'autres ordinateurs. Vous pourrez ainsi accéder à votre serveur MySQL depuis n'importe quel ordinateur de votre réseau (si besoin).
Dans l'onglet "Ordinateurs", vous pouvez restreindre l'accès à quelques ordinateurs par leur adresse IP, je vous laisse le soin d'ajouter les restrictions que vous voulez.
Dans l'onglet "Communications", ajoutez Protocole "TCP" et sélectionnez uniquement les ports mentionnés ci-dessous, cliquez sur ajouter, une nouvelle fenêtre apparaît.
Choisissez "ports spécifiés individuellement" et entré "3306" puis sélectionnez "local" en dessous de "localité". Faites de même avec la localité "distant" si vous voulez que d'autres ordinateurs puissent accéder à votre serveur MySQL.
Dans l'onglet "Avancé", je vous conseille de cocher "créer une entrée de journal de l'historique de la sécurité", si vous voulez voir qui se connecte à votre serveur de temps à autre.
Dans l'onglet "Description", mettez ce que vous voulez, pour ma part c'est "Règle pour serveur MySQL"
Enfin, cliquez sur "Ok".

Votre nouvelle règle est ajoutée à la liste.

Remarque : Par contre, un Pare-Feu fonctionnant sur le principe de la première règle trouvée est appliquée, faites bien attention de vérifier qu'aucune règle n'interdit explicitement une communication TCP sur le port 3306, autrement c'est celle-ci qui sera appliquée.
Dans ce cas, je vous conseille de remonter la règle que vous avez créé dans la liste en cliquant sur "vers le haut" lorsqu'elle est sélectionnée et en la remontant jusqu'au niveau nécessaire pour qu'elle soit exécutée avant toute autre règle pouvant interdire les communications sur le port 3306.

Bien, le pare-feu Norton devrait être correctement configuré pour que le Serveur MySQL puisse être exécuté. Mais vous ne pouvez pas encore lancer la configuration du serveur MySQL correctement (à priori). Sous Windows 7 il m'a fallu encore permettre à MySQL à accéder à ses propres dossiers sous mon compte. A moins que vous ne soyez connecté en tant qu'administrateur, ce n'est pas permis par défaut.

Autoriser la modification des dossiers MySQL par le serveur MySQL


Pour ce faire, rendez-vous à l'endroit où vous avez installer MySQL. Normalement ça devrait être dans C:\Program Files\MySQL
Faites un clic droit sur le dossier MySQL et cliquez sur "Propriétés". Allez dans l'onglet "Sécurité" et cliquez sur "Modifier...". Cliquez sur le nom correspondant au compte Windows depuis lequel le serveur MySQL sera lancé. Cochez Autoriser "Modification", qui est normalement non coché à la base. Cliquez sur "Ok", Windows appliquera ce changement à tous les sous-dossiers. De cette façon MySQL pourra accéder à ses dossier pour y effectuer les modifications nécessaires à son bon fonctionnement.

Appliquez, et essayez de lancer l'étape de configuration du serveur par l'installer MySQL.

S'il n'y parvient pas, et que vous avez toujours une erreur, ce n'est pas grave, ouvrez un invite de commandes (dans menu démarrer, recherchez "cmd" et appuyez sur entrée).

Rendez-vous dans le dossier MySQL Server 5.5/bin où nous allons lancer le serveur à la main pour voir si tout fonctionne.
Pour ce faire, tapez les commandes :

cd c:
cd "Program Files (x86)"/MySQL/"MySQL Server 5.5"/bin
mysqld.exe

Si tout fonctionne, vous ne devriez plus avoir la main sur l'invite de commande (peu importe ce que vous tapez, rien ne s'affiche). Sinon vous aurez une erreur qui s'affichera, indiquant normalement précisément ce qui ne va pas.

Si vous voulez arrêter le serveur, faites "ctrl + c". Faites donc "ctrl +c" puis tapez la commande :
mysqld --install

Cette commande a pour but d'installer le serveur en tant que service Windows à la main (ce qu'était sensé faire la configuration de l'installer MySQL).

A partir de maintenant le service devrait être lancé automatiquement au démarrage de Windows. Pour le démarrer manuellement, faites un clic droit sur votre poste de travail (dans l'explorateur, clic droit sur "Ordinateur") puis cliquez sur "Gérer". A gauche, choisissez "Services et applications" puis "Services".

Dans la liste (triée par ordre alphabétique), repérez "MySQL", sélectionnez le service et cliquez sur "Démarrer". Si mysqld se lançait correctement, le service devrait se lancer correctement.

Maintenant, lancez MySQL Workbench (dans le menu démarrer, il devrait être dans le dossier "MySQL"). Si le serveur s'est correctement lancé, vous devriez avoir un serveur déjà créé (à droite) et une connexion déjà configurée (à gauche). Du côté du serveur, vous pouvez cliquer sur "Manage Security", vous aurez ainsi accès à un panneau d'administration permettant de configurer un mot de passe pour l'administrateur du serveur (par défaut, user "root").

Voilà pour la configuration de MySQL et Norton sous Windows 7...
Laborieux... Mais on finit toujours par y arriver .


Index -- --

Ct2c slider fleche top
  • Aucun commentaire - Soyez le premier !

Insérez votre commentaire
  1. Min: 50 caractères, Max: 800. Actuellement: 0 caractères

  2. ne pas remplir