Mise en place d’un SGBD

Objectif

Le but de cette documentation est de présenter l’installation et la configuration d’un SGBD, ici MySQL.
Nous allons également mettre en place une interface d’administration web, phpmyadmin.

Pré-requis

Un serveur Linux Debian 7 à jour connecter à Internet pour le SGBD ;

Un serveur Linux Debian 7 à jour connecter à Internet pour l’interface web.

Installation de MySQL

Premièrement mise a jour des paquets et du système :

# apt-get update
# apt-get upgrade

Deuxièmement installation des paquets nécessaire a l’installation de mysql :

# apt-get install mysql-server

Ce message s’affiche : Répondre “O” pour oui.

Choisir un mot de passe et le confirmer lorsque le système le demande Si l’installation se passe correctement, le message suivant apparaît à l’écran

Configuration de MySQL

On ouvre le fichier /etc/mysql/my.cnf avec un éditeur de texte.
On édite la ligne 47 en remplacant 127.0.0.1 par 0.0.0.0 afin de permettre l’accès au serveur MySQL depuis un client distant.
On enregistre le fichier et reload la configuration de MySQL.

# service mysql restart

Test de MySQL

On se connecte au serveur MySQL via la commande

# mysql -p

On va maintenant ce connecter au serveur mysql depuis le serveur web.
Pour cela on va tout d’abord devoir créer un nouvel utilisateur dans la base de donnée puisque l'accès root ne peut s’effectuer que depuis le serveur local (localhost).

Dans l’interface en ligne de commande de mysql on réalise les commandes suivantes.
Premièrement on sélectionne la base de donnée dans laquelle ont travail.

mysql> use mysql
mysql> select user, host from user;

On voit donc sur ce screen que l’utilisateur root est accessible seulement en local.
On va donc maintenant créer notre nouvel utilisateur.

mysql> create user 'webAccess'@'172.21.101.11' identified by 'M2LWEBTest';

Ainsi que lui donner tous les droits.

mysql> grant all privileges on *.* to 'webAccess'@'172.21.101.11' with grant option;

Finalement, on recharge les privilèges.

mysql> flush privileges;

On teste la connexion depuis le serveur web :

mysql -u webAccess -p -h 172.21.101.12

Mise en place de phpmyadmin

Comme lors de toute installation on vérifie la présence de mise à jour avant de procédé à l’installation

# apt-get update && sudo apt-get upgrade
# apt-get install phpmyadmin

Lors de l’installation ce message va s’afficher. Comme nous avons un serveur apache2 nous sélectionnons donc la première option.

Ensuite on nous demande de configurer directement phpmyadmin avec la base de donnée dbconfig-common, on répond “non” puisque nous avons déjà une base de donnée installer qui est mysql.

Nous allons donc procéder nous même a la configuration.
On va pour cela éditer le fichier de configuration /etc/phpmyadmin/config.inc.php

# vi etc/phpmyadmin/config.inc.php

On modifie la ligne 87 comme ceci et on la décommente.

$cfg['Servers'][$i]['host'] = '172.21.101.12';

Et on redémarre le service apache.

# service apache2 restart

On peut maintenant tester notre interface web.
Pour cela on rentre l’adresse : https://172.21.101.11/phpmyadmin dans notre navigateur. L’interface est bien disponible. Nous testons maintenant la connexion au serveur avec les identifiants que l’on a créer plus tôt.
Une fois connecté nous arrivons sur la page d'accueil de phpmyadmin et d’ici nous avons accès aux bases de données.

Note de sécurité

Après analyse d’un critère du sujet concernant les droits utilisateurs attribués aux développeurs, nous jugeons que le droit de création d’une nouvelle base entraîne un risque de sécurité vis à vis des requis. Nous préférons donc ne pas donner ce droit aux développeurs qui devront nous consulter en cas de besoin. Ce qui veut donc dire que nous attribuerons les droits lors de la création de la base.