Aller au contenu principal

Créer un utilisateur distant

1) Configurer MariaDB pour le rendre accessible depuis l'extérieur

Maintenant on souhaite pouvoir se connecter au serveur SQL, à partir d'un ordinateur client. Pour cela nous devons configurer le serveur SQL afin qu'il accepte les connexions qui viennent d'une autre machine, en passant par sa carte réseau.

attention

Puisque le client et serveur ne sont pas sur la même machine, il faut connaitre leurs adresses IP.

remarque

Quelle est l'adresse IP de votre serveur MySQL/MariaDB ?

Quelle est l'adresse IP de votre client MySQL/MariaDB ?

Il nous faut connaître l'adresse IP du serveur SQL :

ip a

Pensez à bien mémoriser l'adresse IP de votre serveur SQL.

Le fichier de configuration serveur SQL MariaDB est : /etc/mysql/mariadb.conf.d/50-server.cnf Pour que le serveur SQL MariaDB accepte les connexions qui viennent d'une autre machine, en passant par la carte réseau du serveur SQL, nous devons modifier le paramètres bind-address

Pour modifier un fichier, nous pouvons utiliser l'éditeur de texte nano.

Et bien-sûr, pour avoir l'autorisation de modifier un fichier de configuration, nous devons utiliser la commande sudo

La commande complète est donc : sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Pour que le serveur SQL MariaDB accepte les connexions qui viennent d'une autre machine, en passant par sa carte réseau, nous devons modifier le paramètres bind-address Nous allons remplacer 127.0.0.1par l'adresse IP de votre serveur SQL

C'est l'adresse IP que vous avez bien mémorisée ;-)

Pour enregistrer le fichier : Ctrl + O puis Entrée Pour fermer l'éditeur de texte nano : Ctrl + X

astuce

Pour autoriser les connexions en passant par toutes les cartes réseau du serveur SQL, nous pouvons renseigner le paramètres bind-address avec 0.0.0.0

bind-address        = 0.0.0.0

2) Créer un compte utilisateur admin accessible à partir du poste Windows

attention

Puisque le client et serveur ne sont pas sur la même machine, il faut connaitre leurs adresses IP.

remarque

Quelle est l'adresse IP de votre serveur MySQL/MariaDB ?

Quelle est l'adresse IP de votre client MySQL/MariaDB ?

RAPPEL : Pour créer un compte utilisateur, on utilise la commande CREATE USER 'utilisateur'@'hôte' IDENTIFIED BY 'mot_de_passe';

RAPPEL : Pour afficher l'adresse IP sous Windows, on utilise la commande ipconfig

Voici donc la commande à saisir, pour créer un compte utilisateur admin accessible à partir de Windows, sur mon poste, avec le mot de passe JseeBTS-SIO=12 :

CREATE USER 'admin'@'172.16.136.27' IDENTIFIED BY 'JseeBTS-SIO=12';

3) Donner des permissions à notre utilisateur

RAPPEL : Pour donner des permissions à un utilisateur, on utilise 2 commandes : GRANT ALL PRIVILEGES ON base_de_donnee.table TO 'utilisateur'@'hôte'; FLUSH PRIVILEGES; Voici donc les commandes à saisir, sur mon poste, pour donner des permissions à mon utilisateur admin accessible à partir de Windows, avec l'accès à toutes les tables de la base de données alimentation :

GRANT ALL PRIVILEGES ON alimentation.* TO 'admin'@'172.16.136.27';
FLUSH PRIVILEGES;

4) Importer un fichier .sql dans une BD

Maintenant que nous avons installé les outils nécessaires (les clients SQL) pour communiquer avec le serveur SQL, nous allons :

  • importer un fichier SQL dans une base de données,
  • et exécuter des requêtes SQL sur cette base de données.

Exporter/importer un fichier .sql dans une BD

Exporter un fichier SQL à partir d'une base de données s'appelle sauvegarder la base de données (backup en anglais).

Importer un fichier SQL dans une base de données s'appelle restaurer la base de données (restore en anglais).

Pour importer un fichier .sql dans une BD, nous avons 2 solutions :

  • exécuter la commande (à partir du poste client)
  • exécuter la commande directement (sur le serveur)

Solution 1 : exécuter la commande (à partir du poste client)


Solution 2 : exécuter la commande directement (sur le serveur)


Importer un fichier .sql dans une BD (à partir du poste client)

Voyons tout d'abord comment exécuter la commande (à partir du poste client), pour importer le fichier restore1.sql.

Pour importer un fichier SQL dans le serveur SQL MariaDB ou MySQL, à partir du poste client, on utilise la commande : mysql -h IP-du-serveur-ou-domaine -u utilisateur -p < nom-du-fichier.sql

Voici donc la commande à partir du poste client, pour importer le fichier SQL restore1.sql :

mysql -h 172.16.136.127 -u admin -p < restore1.sql

Une fois le fichier SQL importé, sans erreur, dans la base de données, nous pouvons faire des requêtes sur les tables importées.

Pour cela, nous avons besoin de nous connecter au serveur SQL.

Voici, pour rappel, la commande à saisir, pour se connecter à mon serveur avec le compte utilisateur admin :

mysql -h 172.16.136.127 -u admin -p

on saisit ensuite le mot de passe que l'on a donné lors de la création du compte JseeBTS-SIO=12

Par exemple, nous pouvons afficher la liste des BD, avec la commande :

SHOW databases;

Nous pouvons aussi afficher la liste des tables, de la BD alimentation avec les commandes :

USE alimentation;
SHOW tables;

Importer un fichier .sql dans une BD (sur le serveur)

Pour tester la 2ème solution, nous allons importer le fichier restore2.sql.

Mais pour importer ce fichier dans le serveur SQL, ce fichier doit se trouver dans l'arborescence des fichiers du serveur.*

Pour cela, nous allons utiliser le logiciel WinSCP.

Comment installer WinSCP ?

Si WinSCP n'est pas installé dans votre ordinateur Windows, il vous suffit de le télécharger à l'adresse : https://winscp.net/eng/download.php puis de l'installer, en exécutant le fichier WinSCP-x.x.x-Setup


Nous allons nous connecter en SSH à notre serveur Debian avec WinSCP, pour envoyer le fichier restore2.sql dans le dossier /home/sio/

Nous allons maintenant envoyer le fichier restore2.sql dans le dossier /home/sio/

Maintenant que notre fichier restore2.sql est arrivé sur le serveur Debian, nous allons pouvoir l'importer dans le serveur SQL.

Pour importer un fichier SQL dans le serveur SQL MariaDB ou MySQL, directement (sur le serveur) on utilise la commande : sudo mysql < nom-du-fichier.sql

Voici donc la commande à saisir (sur le serveur), pour importer le fichier SQL restore2.sql :

sudo mysql < restore2.sql

Une fois le fichier SQL importé (sans erreur) dans la base de données, nous pouvons faire des requêtes SQL.

  • Connectez vous au serveur SQL, avec la commande :

    sudo mysql
    # ou
    mysql -u root -p

    Voici des exemples de requêtes SQL

  • nous pouvons afficher la liste des base de données, avec la commande :

    SHOW databases;
  • nous pouvons afficher la liste des tables de la base de données festival, avec la commande :

    USE festival;
    SHOW TABLES;


Résumé

À ce stade, vous devez disposer d'un serveur SQL et de plusieurs clients SQL, et vous devez être en mesure :

  • de rendre le serveur SQL accessible depuis l'extérieur ;
  • de créer un utilisateur MySQL/MariaDB ;
  • de donner des permissions à cet utilisateur ;
  • d'importer un fichier SQL ;
  • et d'exécuter vos premières requêtes SQL.

Test de mémorisation/compréhension


Quelle commande est utilisée pour installer le serveur SQL MariaDB sur Debian ?


Comment se connecter au serveur SQL en localhost sur une machine Debian ?


Quelle commande est utilisée pour créer un compte utilisateur dans MariaDB ?


Quelle commande est utilisée pour donner toutes les permissions à un utilisateur sur une base de données spécifique dans MariaDB ?


Quelle est la commande pour importer un fichier SQL dans le serveur MariaDB directement sur le serveur ?