====== 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 : {{ :sio:ppe2:mission_1:mysql_install.png?700 |}} Répondre “O” pour oui. Choisir un mot de passe et le confirmer lorsque le système le demande {{ :sio:ppe2:mission_1:mysql_install_passwd.png?700 |}} Si l’installation se passe correctement, le message suivant apparaît à l’écran {{ :sio:ppe2:mission_1:mysql_install_start.png |}} ===== 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 {{ :sio:ppe2:mission_1:mysql_config_reload.png |}} ===== Test de MySQL ===== On se connecte au serveur MySQL via la commande # mysql -p {{ :sio:ppe2:mission_1:mysql_test_login.png?700 |}} 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; {{ :sio:ppe2:mission_1:mysql_config_list.png?700 |}} 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; {{ :sio:ppe2:mission_1:mysql_config_newuser.png?700 |}} On teste la connexion depuis le serveur web : mysql -u webAccess -p -h 172.21.101.12 {{ :sio:ppe2:mission_1:mysql_test_distant.png?700 |}} ===== 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. {{ :sio:ppe2:mission_1:phpmyadmin_install.png?700 |}} 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. {{ :sio:ppe2:mission_1:phpmyadmin_install_bdd.png?700 |}} 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|https://172.21.101.11/phpmyadmin]] dans notre navigateur. {{ :sio:ppe2:mission_1:phpmyadmin_login.png?700 |}} 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. {{ :sio:ppe2:mission_1:phpmyadmin_databases.png?700 |}} ===== 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.