Travaux Pratiques de base de données Mariadb en libre accès


 

Attention : serveur initialisé tous les soirs et aucune sauvegarde des travaux.

Modalités :

Liste des identifiants et mots de passe des comptes d’accès banalisés à utiliser

 

Compte enseignant

login : enseignant

password: alcd

 

 

 

Comptes pour les étudiants

Il y a 10 comptes étudiants déja créés dans Mariadb (de etudiant1 à etudiant10 )

login :etudiantX ( ex : etudiant1 )

Mot de passe : alcd

 

 

Pour se connecter au serveur demo-ptu-sgbd1.alcd.fr :

 

1) via Phpmyadmin

http://demo-ptu-sgbd1.alcd.fr:8080

2) Depuis un client mariadb sous Linux

mysql --host=192.168.17.18 --port=32768 mysql -u <nom utilisateur> -p

 

Logiciels utilisés : standards et open source

 

Open source Proxmox (Hyperviseur) : https://pve.proxmox.com/wiki/Main_Page

 

Open source Debian  (système d'exploitation ): https://www.debian.org/

 

Open source Docker (Conteneur déploiements d'application) :https://www.docker.com/

 

Open source Portainer (Interface graphique de gestion de conteneur docker) : https://portainer.io/

 

Open source Mariadb (Système de Gestion de Base de Données ) :https://mariadb.org/

 

Open source Phpmyadmin (Application Web Gestion de SGBD ) :https://www.phpmyadmin.net/

 

Open source Apache (Serveur Web) :https://httpd.apache.org/

 

 

Prérequis

Debian 9.5 fraichement installé

Configuration TCP/IP opérationnelle

 

Etape :

 1) Installation docker

 2) Installation docker-compose

 3) Installation portainer

 4) Installation mariadb via portainer

 5) Installation phpmyadmin a la main

 6) Création des comptes enseignants et etudiants dans mariadb pour les travaux pratiques

 

 Désinstaller les anciennes versions de Docker

# apt-get -y remove docker docker-engine docker.io

 

Installation de docker

# apt-get install -y apt-transport-https ca-certificates wget software-properties-common

# wget https://download.docker.com/linux/debian/gpg

# apt-key add gpg

# echo "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | tee -a /etc/apt/sources.list.d/docker.list

# apt-get update

# apt-cache policy docker-ce

# apt-get -y install docker-ce

 

Démarrer le service Docker

# systemctl start docker

 

Controler l’état du service Docker

# systemctl status docker

 

Activer le démarrage automatique du service Docker à chaque redémarrage du système

# systemctl enable docker

 

Tester l’arrêt du service Docker

# systemctl stop docker

 

Tester le démarrage du service Docker

# systemctl restart docker

 

Vérifier le status du service Docker

# docker ps

 

Autoriser à l’utisateur ausmane de démarrer le service Docker

# usermod -aG docker ausmane

 

2) Installation de docker-composer

# apt-get install curl

# curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

# chmod +x /usr/local/bin/docker-compose

# docker-compose --version

 

3) Installation de portainer ssl

# docker pull portainer/portainer

# docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

portainer/portainer latest 00ead811e8ae 4 weeks ago 58.7MB

# mkdir /etc/ssl/portainer && cd /etc/ssl/portainer

# openssl genrsa -out portainer.key 1024

# sudo openssl x509 -req -days 999 -in portainer.csr -signkey portainer.key -out portainer.crt

# mkdir ~/portainer && sudo cp /etc/ssl/portainer/* ~/portainer

# docker run --name portainer_with_SSL -d -p 443:9000 -v ~/portainer:/certs -v "/var/run/docker.sock:/var/run/docker.sock" portainer/portainer --ssl --sslcert /certs/portainer.crt --sslkey /certs/portainer.key

 

Configuration de portainer

RM : Lors de la première connexion, il vous sera demandé de créer le mot de passe de l'utilisateur admin

1) https://IPSERVER/ -> OK

Login : admin

passwd :

1) Connexion local

3) Manage the local Docker environnement

4) Cliquer sur Dashboard

5) Modifier la langue

6) Créer le container mariadb via portainer

Name : mariadb_ptu

root password :

nifty_booth

Restart : Always

Idem pour portainer -> Restart : Always

 

4) Créer le container mariadb via portainer

1) https://192.168.17.15/ -> OK

Login : admin

passwd : alcd

1) Connexion local

3) Manage the local Docker environnement

4) Cliquer sur Dashboard

5) Modifier la langue

6) Créer le container mariadb via portainer

Name : gracious_ptolemy

root password : alcd

nifty_booth

Restart : Always

 

 

Vérifier le status du service Docker

# docker ps -a

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

4a3db54c4b5f mysql:latest "docker-entrypoint.s…" 2 minutes ago Up 2 minutes 33060/tcp, 0.0.0.0:32768->3306/tcp gracious_ptolemy

 

c085b55867df portainer/portainer "/portainer --ssl --…" 28 minutes ago Up 26 minutes 0.0.0.0:443->9000/tcp portainer_with_SSL

 

RM : Noter bien le CONTAINER ID (4a3db54c4b5f) et Le NAMES(gracious_ptolemy) du container mariadb

 

Se connecter sur le container mariadb_ptu en mode commande

# docker exec -it gracious_ptolemy bash

root@4a3db54c4b5f:/#

 

Sécuriser mariadb

root@4a3db54c4b5f:/# mysql_secure_installation

Change the root password? [Y/n] n

Remove anonymous users? [Y/n] Y

Disallow root login remotely? [Y/n] Y

Remove test database and access to it? [Y/n] Y

Reload privilege tables now? [Y/n] Y

 

Créer un utilisateur ausmane dans mariadb

# mysql -u root -p

MariaDB [(none)]> grant all privileges on *.* to ausmane@"%"; identified by 'alcd' with grant option;

MariaDB [(none)]> flush privileges;

MariaDB [(none)]> exit

 

5) Installation du container phpmyadmin en mode commande

# docker run --name myadmin -d --link mariadb_ptu:db -p 8080:80 phpmyadmin/phpmyadmin

 

Vérifier le status du service Docker

# docker ps -a

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

cf12234182f0 phpmyadmin/phpmyadmin "/run.sh supervisord…" 12 seconds ago Up 12 seconds 9000/tcp, 0.0.0.0:8080->80/tcp myadmin

 

4a3db54c4b5f mysql:latest "docker-entrypoint.s…" 2 minutes ago Up 2 minutes 33060/tcp, 0.0.0.0:32768->3306/tcp gracious_ptolemy

 

c085b55867df portainer/portainer "/portainer --ssl --…" 28 minutes ago Up 26 minutes 0.0.0.0:443->9000/tcp portainer_with_SSL

 

Tester la connexion phpmyadmin

http://192.168.17.15:8080/ -> ok

Login : ausmane

passwd : alcd

 

Tester la connexion portainer

https://192.168.17.15/ -> ok

Login : admin

passwd : alcd

 

Tester la connexion a mariadb a partir d’un client linux distant

# apt-get install mariadb-client

 

# mysql –host=192.168.17.15 --port=32768 mysql -u ausmane -p

Enter password:alcd

MariaDB [mysql]> show DATABASES;

+--------------------+

| Database |

+--------------------+

| information_schema |

| mysql |

| performance_schema |

+--------------------+

3 rows in set (0.01 sec)

MariaDB [mysql]> exit

 

6) Créer le compte enseignant et etudiants pour les travaux pratiques Mariadb

Se connecter sur le container gracious_ptolemy en mode commande

# docker exec -it gracious_ptolemy bash

#

 

Créer un compte administrateur de mariadb

# mysql -u root -p

Enter password: alc

MariaDB [(none)]> grant all privileges on *.* to 'adminmariadb'@'%' identified by 'alcd' with grant option;

MariaDB [(none)]> flush privileges;

MariaDB [(none)]> exit

 

Créer via un script mysql des bases de données et les comptes enseignants avec les droits

Créer le script db_enseignant.sql pour la base de données enseignants

# vi db_enseignant.sql

-- CREATE DATABASE dbenseignant;

CREATE DATABASE dbenseignant;

 

Insérer la base de données enseignant avec un script db_enseignant.sql

# mysql -u root -p < db_enseignant.sql

Enter password:alcd

 

Créer le script user_enseignant.sql pour le compte enseignant

# vi user_enseignant.sql

USE mysql;
grant all privileges on dbenseignant.* to enseignant@"%"; identified by 'alcd' with grant option;

 

Insérer le compte enseignant dans la base de données avec un script user_enseignant.sql

# mysql -u root -p < user_enseignant.sql

Enter password:alcd

 

Créer le script db_etudiants.sql pour la base de données etudiants

# vi db_etudiants.sql

-- CREATE DATABASE dbetudiants;
CREATE DATABASE dbuser1;
CREATE DATABASE dbuser2;
CREATE DATABASE dbuser3;
CREATE DATABASE dbuser4;
CREATE DATABASE dbuser5;
CREATE DATABASE dbuser6;
CREATE DATABASE dbuser7;
CREATE DATABASE dbuser8;
CREATE DATABASE dbuser9;

CREATE DATABASE dbuser10;

 

Insérer la base de données eetudiants avec un script db_etudiants.sql

# mysql -u root -p < db_etudiants.sql

Enter password:alcd

 

Créer le script user_etudiants.sql pour le compte etudiants

# vi user_etudiantst.sql

USE mysql;
grant all privileges on dbuser1.* to user1@"%"; identified by 'puser1' with grant option;

grant all privileges on dbuser2.* to user2@"%"; identified by 'puser2' with grant option;

grant all privileges on dbuser3.* to user3@"%"; identified by 'puser3' with grant option;

grant all privileges on dbuser4.* to user4@"%"; identified by 'puser4' with grant option;

grant all privileges on dbuser5.* to user5@"%"; identified by 'puser5' with grant option;

grant all privileges on dbuser6.* to user6@"%"; identified by 'puser6' with grant option;

grant all privileges on dbuser7.* to user7@"%"; identified by 'puser7' with grant option;

grant all privileges on dbuser8.* to user8@"%"; identified by 'puser8' with grant option;

grant all privileges on dbuser9.* to user9@"%"; identified by 'puser9' with grant option;

grant all privileges on dbuser10.* to user10@"%"; identified by 'puser10' with grant option;

 

Insérer les comptes etudiants dans la base de données avec un script user_etudiants.sql

# mysql -u root -p < user_etudiants.sql

Enter password:alcd

 

Donner le droit aux enseignants sur toutes les bases de tous les étudiants

# vi droits_enseignant_db_etudiants.sql

USE mysql;
grant all privileges on dbuser1.* to enseignant@"%"; identified by 'alcd' with grant option;

grant all privileges on dbuser2.* to enseignant@"%"; identified by 'alcd' with grant option;

grant all privileges on dbuser3.* to enseignant@"%"; identified by 'alcd' with grant option;

grant all privileges on dbuser4.* to enseignant@"%"; identified by 'alcd' with grant option;

grant all privileges on dbuser5.* to enseignant@"%"; identified by 'alcd' with grant option;

grant all privileges on dbuser6.* to enseignant@"%"; identified by 'alcd' with grant option;

grant all privileges on dbuser7.* to enseignant@"%"; identified by 'alcd' with grant option;

grant all privileges on dbuser8.* to enseignant@"%"; identified by 'alcd' with grant option;

grant all privileges on dbuser9.* to enseignant@"%"; identified by 'alcd' with grant option;

grant all privileges on dbuser10.* to enseignant@"%"; identified by 'alcd' with grant option;

 

Insérer le script droits_enseignant_db_etudiants.sql dans la base de données

# mysql -u root -p < droits_enseignant_db_etudiants.sql

Enter password:alcd

 

Tester la connexion phpmyadmin

http://192.168.17.15:8080/

Login : adminmariadb

passwd : alcd

http://10.234.17.15:8080/

login : enseignant

password : alcd

http://10.234.17.15:8080/

login : user1

password : puser1

 

Tester la connexion au serveur mariadb avec le mode commande

# mysql –host=192.168.17.15 --port=32768 mysql -u adminmariadb -p

Enter password:alcd

MariaDB [mysql]> show DATABASES;

# mysql –host=192.168.17.15 --port=32768 mysql -u enseignant -p

Enter password:alcd

MariaDB [mysql]> show DATABASES;

# mysql –host=192.168.17.15 --port=32768 mysql -u user1 -p

Enter password:puser1

MariaDB [mysql]> show DATABASES;

 

MARIADB + PHPMYADMIN + DOCKER + PORTAINER


Environnement virtuel pour les Travaux Pratiques de Base de données

Cet environnement permet à un groupe de Travaux Pratiques d’accéder à un serveur de base de données Mariadb aussi bien avec un navigateur Web qu’en mode commande. Cet environnement est accessible depuis n’importe quel terminal et quel que soit le système d'exploitation (Mac, Linux, Windows).

 

 Prérequis : 

 

Docker est un conteneur pour le déploiements d'applications

Portainer est une interface graphique de gestion de conteneur docker

MariaDB est un système de gestion de base de données

PhpMyAdmin (PMA) est une application Web de gestion de base de données ( Mariadb, MySQL )


Manuel d'installation :

Installation de mariadb PhpMyadmin avec Docker et Portainer

 

Manuel d'utilisation :

Utilisation de mariadb et PhpMyadmin avec Docker et Portainer

 

FAQ

 

 

Logiciels utilisés : standards et open source

 

 

Open source Proxmox (Hyperviseur) : https://pve.proxmox.com/wiki/Main_Page

 

Open source Debian  (système d'exploitation ): https://www.debian.org/

 

Open source Docker (Conteneur déploiements d'application) :https://www.docker.com/

 

Open source Portainer (Interface graphique de gestion de conteneur docker) : https://portainer.io/

 

Open source Mariadb (Système de Gestion de Base de Données ) :https://mariadb.org/

 

Open source Phpmyadmin (Application Web Gestion de SGBD ) :https://www.phpmyadmin.net/

 

Open source Apache (Serveur Web) :https://httpd.apache.org/

 

Open source Ubuntu  ( système d'exploitation ): https://ubuntu-fr.org/

 

 

 

 

Prérequis

Debian 9.5 fraichement installé

Configuration TCP/IP opérationnelle

 

Etape :

 1) Installation docker

 2) Installation docker-compose

 3) Installation portainer

 Désinstaller les anciennes versions de Docker

# apt-get -y remove docker docker-engine docker.io

 

Installation de docker

# apt-get install -y apt-transport-https ca-certificates wget software-properties-common

# wget https://download.docker.com/linux/debian/gpg

# apt-key add gpg

# echo "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | tee -a /etc/apt/sources.list.d/docker.list

# apt-get update

# apt-cache policy docker-ce

# apt-get -y install docker-ce

 

Démarrer le service Docker

# systemctl start docker

 

Controler l’état du service Docker

# systemctl status docker

 

Activer le démarrage automatique du service Docker à chaque redémarrage du système

# systemctl enable docker

 

Tester l’arrêt du service Docker

# systemctl stop docker

 

Tester le démarrage du service Docker

# systemctl restart docker

 

Vérifier le status du service Docker

# docker ps

 

Autoriser à l’utisateur ausmane de démarrer le service Docker

# usermod -aG docker ausmane

 

2) Installation de docker-composer

# apt-get install curl

# curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

# chmod +x /usr/local/bin/docker-compose

# docker-compose --version

 

3) Installation de portainer ssl

# docker pull portainer/portainer

# docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

portainer/portainer latest 00ead811e8ae 4 weeks ago 58.7MB

# mkdir /etc/ssl/portainer && cd /etc/ssl/portainer

# openssl genrsa -out portainer.key 1024

# sudo openssl x509 -req -days 999 -in portainer.csr -signkey portainer.key -out portainer.crt

# mkdir ~/portainer && sudo cp /etc/ssl/portainer/* ~/portainer

# docker run --name portainer_with_SSL -d -p 443:9000 -v ~/portainer:/certs -v "/var/run/docker.sock:/var/run/docker.sock" portainer/portainer --ssl --sslcert /certs/portainer.crt --sslkey /certs/portainer.key

 

Configuration de portainer

RM : Lors de la première connexion, il vous sera demandé de créer le mot de passe de l'utilisateur admin

1) https://192.168.17.24/ -> OK

Login : admin

passwd  alcd

1) Connexion local

3) Manage the local Docker environnement

4) Cliquer sur Dashboard

5) Modifier la langue

nifty_booth

Restart : Always

 

 

connexion portainer 1

 

portainer 2

 

portainer 3

 

4) Créer le container mariadb via portainer

1) https://192.168.17.15/ -> OK

Login : admin

passwd : alcd

1) Connexion local

3) Manage the local Docker environnement

4) Cliquer sur Dashboard

5) Modifier la langue

6) Créer le container mariadb via portainer

Name : gracious_ptolemy

root password : alcd

nifty_booth

Restart : Always

 

 

Vérifier le status du service Docker

# docker ps -a

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

4a3db54c4b5f mysql:latest "docker-entrypoint.s…" 2 minutes ago Up 2 minutes 33060/tcp, 0.0.0.0:32768->3306/tcp gracious_ptolemy

 

c085b55867df portainer/portainer "/portainer --ssl --…" 28 minutes ago Up 26 minutes 0.0.0.0:443->9000/tcp portainer_with_SSL

 

RM : Noter bien le CONTAINER ID (4a3db54c4b5f) et Le NAMES(gracious_ptolemy) du container mariadb

 

Se connecter sur le container mariadb_ptu en mode commande

# docker exec -it gracious_ptolemy bash

root@4a3db54c4b5f:/#

 

Sécuriser mariadb

root@4a3db54c4b5f:/# mysql_secure_installation

Change the root password? [Y/n] n

Remove anonymous users? [Y/n] Y

Disallow root login remotely? [Y/n] Y

Remove test database and access to it? [Y/n] Y

Reload privilege tables now? [Y/n] Y

 

 

 

Environnement virtuel pour les Travaux Pratiques de Base de données

Cet environnement permet à un groupe de Travaux Pratiques d’accéder à un serveur de base de données Mariadb aussi bien avec un navigateur Web qu’en mode commande. Cet environnement est accessible depuis n’importe quel terminal et quel que soit le système d'exploitation (Mac, Linux, Windows).

 

 Prérequis : 

 

Docker est un conteneur pour le déploiements d'applications

Portainer est une interface graphique de gestion de conteneur docker

MariaDB est un système de gestion de base de données

PhpMyAdmin (PMA) est une application Web de gestion de base de données ( Mariadb, MySQL )


Manuel d'installation :

Installation de mariadb PhpMyadmin avec Docker et Portainer

 

Manuel d'utilisation :

Utilisation de mariadb et PhpMyadmin avec Docker et Portainer

 

FAQ

 

 

Logiciels utilisés : standards et open source

 

 

Open source Proxmox (Hyperviseur) : https://pve.proxmox.com/wiki/Main_Page

 

Open source Debian  (système d'exploitation ): https://www.debian.org/

 

Open source Docker (Conteneur déploiements d'application) :https://www.docker.com/

 

Open source Portainer (Interface graphique de gestion de conteneur docker) : https://portainer.io/

 

Open source Mariadb (Système de Gestion de Base de Données ) :https://mariadb.org/

 

Open source Phpmyadmin (Application Web Gestion de SGBD ) :https://www.phpmyadmin.net/

 

Open source Apache (Serveur Web) :https://httpd.apache.org/

 

Open source Ubuntu  ( système d'exploitation ): https://ubuntu-fr.org/