LINUX:MariaDB
But
MariaDB est un gestionnaire de base de données client-serveur utilisant le langage SQL. Il fait suite à MySQL. Il est souvent utilisé au même titre que PostgreSQL, autre gestionnaire de base de données.
Installation
On a besoin d'installer un package qui installera les dépendances nécessaires:
dnf install mariadb mariadb-server
Configuration
Les fichiers de configurations se trouvent dans le répertoire "/etc/my.cnf.d". Parmi ceux-ci, un seul nous intéresse: mariadb-server.cnf".
Par défaut, la base de données se crée dans le répertoire "/var/lib/mysql" mais nous préférons l'installer sur un disque à part. Dans notre cas, nous choisissons le répertoire "/produc/mysql".
Il faut le créer:
mkdir /produc/mysql
Il faut le faire appartenir à l'utilisateur pour lequel le service est lancé:
chown -R mysql:mysql /produc/mysql
et les privilèges:
chmod -R 660 /produc/mysql
Maintenant, il faut modifier le fichier configuration du serveur MariaDB, "/etc/my.cnf.d/mariadb-server.cnf". On modifie ou ajoutons quelques options sous la balise "[mysqld]":
[server] [mysqld] # répertoire contenant la base de données datadir=/produc/mysql # Socket, PID, journaux: de préférence, ne pas modifier socket=/var/lib/mysql/mysql.sock log-error=/var/log/mariadb/mariadb.log pid-file=/var/run/mariadb/mariadb.pid # niveau de journalisation, utile pour Fail2Ban log-warnings=2 # nécessaire pour OPAC et WATERBEAR ft_min_word_len = 1 # divers options à adapter en fonction de l'utilisation sql-mode="NO_ENGINE_SUBSTITUTION" max_allowed_packet=64M innodb-log-file-size=256M character-set-server=utf8 open_files_limit = 10000
Activer et lancer le service
Le service à lancer est mariadb. La première commande active le service pour qu'à chaque démarrage du serveur, le service se lance. La seconde lance directement le service. La troisième relance le service.
systemctl enable mariadb systemctl start mariadb systemctl restart mariadb
Sécurité
Lors du premier lancement du serveur, la base de données va être initialisée. Attention, si vous introduisez l'option "ft_min_word_len=1" vue ci-dessus, à postériori, vous devrez effectuer une mise à niveau de la base de données, une réindexation.
A ce stade, il n'existe qu'un utilisateur "root" ayant tous les privilèges mais sans mot de passe. Il est primordial de mettre un mot de passe.
Voici une procédure:
- Créer un script SQL nommé par exemple, "user.root.sql
drop user 'root'@'localhost' ; drop user 'root'@'127.0.0.1' ; drop user 'root'@'::1' ;
create user 'root'@'localhost' identified by 'Foutoir71' ; create user 'root'@'127.0.0.1' identified by 'Foutoir71' ; create user 'root'@'::1' identified by 'Foutoir71' ;
grant all privileges on *.* to 'root'@'localhost' with grant option; grant all privileges on *.* to 'root'@'127.0.0.1' with grant option; grant all privileges on *.* to 'root'@'::1' with grant option;
---