Mon réseau

Mon réseau d’entreprise

17.5 Installation de base de données, l’exemple MariaDB

Précédent   Suivant

Il y a plusieurs moteurs de bases de données. La bibliothèque sqllite permet à des fonctions d’accéder directement aux bases de données (qui sont constituées d’un fichier) sans passer par un processus serveur séparé. Ces bases de données sont beaucoup utilisées, par exemple pour la gestion des contacts sous LineageOS (ou Android).

Les serveurs de bases de données utilisés classiquement avec les applications web sont principalement postgresql et mysql (MariaDB). Le droit est une chose bizarre. Un nom ne peut pas être libre. Ainsi, quand Linux Torwald a proposé le nom “Linux” pour un noyau de système d’exploitation, il n’a pas cherché plus loin. Quelques années après, un quidam a acheté le mot “Linux”. Ce quidam pouvait décider de l’utilisation de ce mot. Il l’a offert à Linus Torwald qui, depuis, fait bien attention à ne pas laisser expirer la propriété. Un nom appartient forcément à une personne physique ou morale. Cette personne décide de l’usage de mot. C’est pourquoi la propagande officielle impose le respect des “marques”. La confusion entre le mot et le produit est grande. Les benêts achètent ainsi des produits de marques sans rechigner au prix, ni contrôler la qualité. Avec les logiciels libres, c’est différent. L’important c’est le produit (le code). Avec le logiciel libre, le code n’est plus lié au nom. Si le propriétaire du nom décide un usage non accepté, alors le code change de nom. En logiciel libre, c’est le logiciel qui est important, pas le nom. Ainsi :

  • LibreOffice est devenu OpenOffice ;

  • Nagios est devenu Icinga (et quelques autres) ;

  • XFree86 est devenu Xorg ;

  • Ethereal est devenu Wireshark ;

  • Mysql est devenu MariaDB ;

  • Owncloud est devenu Nextcloud ;

Le paquet mysql-server, sur Debian Strech est un paquet factice qui dépend de mariadb-server. Il est possible donc d’installer l’un ou l’autre :

apt install mariadb-server

17.5.1 Gestion de l’administrateur MariaDB

MariaDB n’utilise plus de mot de passe administrateur. Les connexions ne sont autorisées que pour l’administrateur local de la machine. Il est recommandé de laisser ainsi. Seul l’administrateur local peut obtenir le compte adminstrateur, les connexions réseaux doivent utiliser un compte secondaire. Lors de l’installation de logiciels par des sorciers (wizards), il faut éventuellement créer les comptes et base de données spécifiques.

Nous pouvons remettre un mot de passe administrateur pour MariaDB. Il y aura donc le compte root de l’ordinateur et le compte root de la base de données. Ils ont des mots de passe distincts.

Nous allons nous connecter à la base de données et ajouter un mot de passe adminstrateur.

# mysql -u root
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 10.1.26-MariaDB-0+deb9u1 Debian 9.1

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> UPDATE mysql.user
                      SET authentication_string=PASSWORD('mdp'),
                      plugin='mysql_native_password'
                      WHERE user='root';
MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> EXIT;
Bye

Vérifiez que vous pouvez vous connecter en utilisant le mot de passe défini :

# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 10.1.26-MariaDB-0+deb9u1 Debian 9.1

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

Pour remettre l’authentification sans mot de passe, il faut utiliser la commande suivante :

UPDATE mysql.user
    SET authentication_string=PASSWORD('mdp'),
    plugin='unix_socket' WHERE user='root';

17.5.2 Création de compte initial

Les sorciers d’installation, comme celui d’Icinga 18.1.1 requièrent soit l’accès administrateur, soit une préconfiguration.

# mariadb -u root
...
MariaDB [(none)]> CREATE DATABASE icingaweb2;
Query OK, 1 row affected (0.000 sec)

MariaDB [(none)]> GRANT ALL ON icingaweb2.*
    -> TO icingaweb2@localhost
    -> IDENTIFIED BY 'mdp';
Query OK, 0 rows affected (0.001 sec)

17.5.3 Créez des tables

Pour utiliser MariaDB, il faut :

  • une base de données ;

  • un administrateur de la base (non root) ;

  • une (en général plusieurs) table(s).

La création est simple :

MariaDB [(none)]> CREATE DATABASE osaka_env ;

Puis on crée un adminstrateur pour celle-ci :

MariaDB [(none)]> GRANT ALL ON osaka_env.*
    -> TO osaka_master@localhost
    -> IDENTIFIED BY 'mdp' ;

Cet utilisateur peut alors se connecter et utiliser sa base de données :

root@osiris:~# mariadb -u osaka_master -p
Enter password:
MariaDB [(none)]> use osaka_env
Database changed
MariaDB [osaka_env]>

Puis il faut créer une table structurée (on peut la supprimer avec DROP) :

CREATE TABLE wb01(
        temperature DEC(4,2),
        humidite INT,
        pression INT,
 date DATETIME
);

Il reste alors à ajouter les valeurs :

insert into wb01(temperature, humidite, pression,date )
          values(10.1, 22, 1099, NOW());
MariaDB [osaka_env]> select * from wb01 ;
+-------------+----------+----------+---------------------+
| temperature | humidite | pression | date                |
+-------------+----------+----------+---------------------+
|       10.10 |       22 |     1099 | NULL                |
|       10.10 |       22 |     1099 | 2026-02-01 19:19:38 |
|      -10.10 |       22 |     1099 | 2026-02-01 19:20:49 |
+-------------+----------+----------+---------------------+

17.5.4 Scripting Python
apt install python3-mariadb-connector

La documentation de MariaDB contient un article pour la connexion entre python et MariaDB

Précédent   Suivant