Initialisation

Avant le premier démarrage du serveur, il faut initialiser les bases de données système : mariadb-install-db --user=mysql --datadir=/var/lib/mysql

Attention, par défaut, le serveur écoute les connexions entrante depuis la machine locale uniquement (port 3306). Se référer à la documentation de la distribution pour autoriser les connexions distantes (pour DBeaver par exemple).

Connexion

Pour se connecter à la base de données en administrateur (root), il faut d’abord se connecter en tant que root sur le système : su ou sudo su.

La commande de connexion est : mariadb -u nomUtilisateur -p [nomBase]

Gestion des utilisateurs et des droits

Lister les utilisateurs

La liste des utilisateurs est enregistrée dans la table user de la base de données système mysql : SELECT user, host, password FROM mysql.user;

Créer un utilisateur

Pour créer un utilisateur autorisé à se connecter depuis la machine locale :

CREATE USER nomUtilisateur@localhost IDENTIFIED BY 'le mot de passe';

Pour que l’utilisateur soit également autorisé à se connecter depuis le réseau (à distance), exécuter la commande précédente une seconde fois en remplaçant localhost par '%'.

Changer un mot de passe

SET PASSWORD FOR nomUtilisateur@localhost = PASSWORD('le mot de passe');

*Remarquer l’utilisation cette fois de la fonction PASSWORD qui calcule un condensé (sans sel).

Afficher les droits d’un utilisateur

SHOW GRANTS FOR nomUtilisateur@localhost;

Accorder des droits à un utilisateur

GRANT INSERT, SELECT, UPDATE, DELETE ON nomBase.* TO nomUtilisateur@localhost;
GRANT ALL PRIVILEGES ON nomBase.* TO nomUtilisateur@localhost [WITH GRANT OPTION];

Retirer des droits à un utilisateur

REVOKE ALL PRIVILEGES ON nomBase.* FROM nomUtilisateur@localhost;

Supprimer un utilisateur

DROP USER nomUtilisateur@localhost

Gestion des bases de données

  • Lister les bases : show databases;
  • Créer une base de données : CREATE DATABASE nomBase;
  • Supprimer une base de données : DROP DATABASE nomBase;
  • Activer (sélectionner) une base : use nomBase;
  • Lister les tables de la base active : show tables;
  • Afficher la description d’une table: desc nomTable;

Créer un champ auto-incrémenté

CREATE TABLE nomTable (id INT PRIMARY KEY AUTO_INCREMENT, ...)