MariaDB – le fork communautaire du serveur MySQL – est une brique logicielle essentielle pour l’hébergement d’un grand nombre d’applications web. Dans ce premier volet d’articles sur MariaDB, nous allons voir l’installation et la configuration initiale du serveur de bases de données sous Rocky Linux 8.
La particularité de notre approche, c’est que nous allons faire fi des outils graphiques comme PHPMyAdmin pour administrer notre serveur. Au lieu de cela, nous allons plonger les mains dans le cambouis de la ligne de commande de MariaDB. Nous allons en profiter au passage pour apprendre un peu de SQL (Structured Query Language), le langage servant à manipuler les bases de données.
MySQL et MariaDB
MariaDB est le système de bases de données le plus populaire du monde de l’Open Source. Un grand nombre d’applications web (wikis, moteurs de blogs et de forums, systèmes de gestion de contenu, etc.) utilisent MariaDB comme moteur de bases de données.
Depuis la version 7.0, Red Hat Enterprise Linux a remplacé MySQL par le fork communautaire MariaDB, suite au rachat de MySQL par Sun Microsystems et Oracle. La gouvernance du projet MariaDB est assurée par la fondation MariaDB. Elle confère au logiciel l’assurance de rester libre.
MariaDB est un remplacement de MySQL. Le fonctionnement de ces deux moteurs de bases de données ainsi que les commandes sous le capot sont identiques : mysql
, mysqldump
, mysqladmin
, mysql_secure_installation
, etc. Pour les petites différences, vous pourrez jeter un œil à cette page.
On entend parfois dire que MariaDB n’est pas un « vrai » système de bases de données en comparaison à des systèmes comme Oracle ou DB/2. Contentons-nous de savoir que MariaDB est utilisé, entre autres, par Amazon, Google et Wikipedia.
Le système de bases de données MySQL a été fondé en 1995 par Michael « Monty » Widenius. Le nom de l’application vient du prénom de sa fille aînée, My. Après le rachat de MySQL par Oracle, Monty a décidé de nommer le fork communautaire d’après Maria, la sœur cadette de My.
Installation et mise en service
Les paquets relatifs à MariaDB sont fournis par les dépôts officiels de Red Hat Enterprise Linux et de Rocky Linux :
# dnf install -y mariadb-server
Le client mariadb
est automatiquement installé par le paquet mariadb-server
.
Activez et démarrez le service :
# systemctl enable mariadb --now
Sécuriser MariaDB
MariaDB dispose de l’utilitaire mysql_secure_installation
pour assurer la sécurité d’une installation fraîche sur une machine de production. Ce programme permet d’effectuer quelques démarches de sécurisation essentielles :
- Définir un mot de passe
root
MySQL (ne pas confondre avec le compteroot
Linux) - Supprimer les comptes
root
MySQL accessibles de l’extérieur - Supprimer les connexions anonymes
- Supprimer la base de données de test
Lancez le script de sécurisation :
# mysql_secure_installation
La première étape consiste à définir le mot de passe root
MariaDB. Pour l’instant il n’y en a aucun. Il suffit donc de confirmer par Entrée. Ensuite, choisissez un mot de passe et confirmez votre choix :
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY! In order to log into MariaDB to secure it, we'll need the current password for the root user. If you've just installed MariaDB, and you haven't set the root password yet, the password will be blank, so you should just press enter here. Enter current password for root (enter for none): [Entrée] OK, successfully used password, moving on... Setting the root password ensures that nobody can log into the MariaDB root user without the proper authorisation. Set root password? [Y/n] y New password: ********** Re-enter new password: ********** Password updated successfully! Reloading privilege tables.. ... Success!
L’utilisateur root
MariaDB est distinct de l’utilisateur root
du système Linux. En termes de sécurité, c’est une bonne idée de ne pas attribuer le même mot de passe à ces deux utilisateurs.
Ensuite on interdit les connexions anonymes :
By default, a MariaDB installation has an anonymous user, allowing anyone to log into MariaDB without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? [Y/n] y ... Success!
On supprime les comptes root
MariaDB accessibles de l’extérieur :
Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? [Y/n] y ... Success!
On supprime la base de données de test :
By default, MariaDB comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? [Y/n] y - Dropping test database... ... Success! - Removing privileges on test database... ... Success!
Pour finir, on valide la prise en compte immédiate des modifications :
Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? [Y/n] y ... Success! Cleaning up... All done! If you've completed all of the above steps, your MariaDB installation should now be secure. Thanks for using MariaDB!
Dorénavant, il faudra se connecter au moniteur MariaDB avec le mot de passe que l’on vient de définir un peu plus haut :
$ mysql -u root -p
Enter password: **********
Welcome to the MariaDB monitor.
...
MariaDB [(none)]>
Affichez les bases de données :
MariaDB [(none)]> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | +--------------------+ 3 rows in set (0.001 sec)
Utilisez la base de données mysql
:
MariaDB [(none)]> use mysql;
...
Database changed
Affichez les utilisateurs :
MariaDB [mysql]> select user, host, password from user; +------+-----------+-------------------------------------------+ | user | host | password | +------+-----------+-------------------------------------------+ | root | localhost | *F424CF5D03C9AAE965E86FBF001AAB078229EDEB | | root | 127.0.0.1 | *F424CF5D03C9AAE965E86FBF001AAB078229EDEB | | root | ::1 | *F424CF5D03C9AAE965E86FBF001AAB078229EDEB | +------+-----------+-------------------------------------------+ 3 rows in set (0.000 sec)
On va garder la seule entrée pour root@localhost
et supprimer les deux autres :
MariaDB [mysql]> delete from user where host != "localhost"; Query OK, 2 rows affected (0.001 sec)
Vérifions le résultat de l’opération :
MariaDB [mysql]> select user, host, password from user; +------+-----------+-------------------------------------------+ | user | host | password | +------+-----------+-------------------------------------------+ | root | localhost | *F424CF5D03C9AAE965E86FBF001AAB078229EDEB | +------+-----------+-------------------------------------------+ 1 row in set (0.000 sec)
Quittons la console :
MariaDB [mysql]> quit; Bye
Je viens d’utiliser le langage SQL (Structured Query Language ou « langage de requête structurée ») pour communiquer avec ma base de données. Dans les articles à venir, nous allons glaner quelques bases du SQL sur le tas, pour répondre à un besoin immédiat.
Si vous êtes curieux et que vous souhaitez en savoir un peu plus sur ce langage, vous pouvez suivre un des nombreux tutoriels bien faits en la matière, par exemple celui de SQL.sh.
Lire la suite : Créer et manipuler des bases de données avec MariaDB
La rédaction de cette documentation demande du temps et des quantités significatives de café espresso. Vous appréciez ce blog ? Offrez un café au rédacteur en cliquant sur la tasse.
0 commentaire