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.
Puisque le client et serveur ne sont pas sur la même machine, il faut connaitre leurs adresses IP.
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.1
par 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
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
Puisque le client et serveur ne sont pas sur la même machine, il faut connaitre leurs adresses IP.
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 utilisateuradmin
accessible à partir deWindows
, avec l'accès à toutes les tables de la base de donnéesalimentation
:
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 -pVoici 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.