Menu Fermer

Installer MySQL (MariaDB) sur Debian 12

MySQL ou MariaDB est un système de gestion de base de données open source.
Il vous permet de créer une base de données pour mettre en place un site WEB WordPress, Joomla ou Drupal et bien d’autres usages.

Dans Debian, MySQL existe sous la forme de MariaDB en version 12.
Ce dernier étant entièrement sous licence GPL.
Il n’y a pas énormément de différences de fonctionnement entre les deux.

Dans ce tutoriel, je vous guide pour installer MariaDB sur Debian 12.

Installer MySQL (MariaDB) sur Debian 12

Installer MySQL (MariaDB) sur Debian 12

Installer le paquet Mariadb-server

L’installation des paquets MySQL sur Debian est extrêmement simple puisque Mariadb est disponible dans les dépôts.
On utilise donc APT pour installer.

On met donc à jour les dépôts avec la commande update puis on installe le paquet mariadb-server :

apt update
apt install mariadb-server-10.3

Puis laissez l’installation s’effectuer.

Installer MySQL (Mariadb) sur Debian 10
Bravo ! vous êtes parvenu à installer Mysql sur Debian 12.

Script de sécurité

Les paquets configure MySQL mais on peut utiliser un script de sécurité pour changer le mot de passe root puis configurer certains aspects de sécurité de MySQL.
Pour cela, saisissez la commande suivante :

mysql_secure_installation

Puis laissez vous guider pour répondre aux questions suivantes avec la touche Y ou N.

  • Set root password – Définir le mot de passe root
  • Remove anonymous users – Supprimer les utilisateurs anonymes
  • Remove test database and access to it – Supprimer la base de données de test et y accéder
  • Reload privilege tables now – Recharger les tables de privilèges maintenant
Script de sécurité à l'installation de MySQL

Changer le mot de passe root avec mysqladmin

Sinon on peut aussi changer le mot de passe root MySQL directement avec la commande mysqladmin.
Voici la syntaxe à utiliser :

mysqladmin -u root -p password 'lemotdepasse'

Par exemple pour mettre le mot de passe root Mysql “SuperMotdePasseDeOuf”.

Changer le mot de passe root avec mysqladmin
Debian étant une distribution Linux, il est sensible à la case, attention donc aux majuscules de votre mot de passe.

Configuration de MySQL

Créer une base de données et utilisateur sur MySQL

On se connecte en root à MySQL avec la commande suivante :

mysql -u root -p

Puis on utilise la commande create database pour créer une base de données.
Par exemple pour créer la base de données supermalekal :

create database supermalekal;

Ensuite vous pouvez créer les utilisateurs d’accès à votre base de données.

CREATE USER 'utilisateur'@'ip' IDENTIFIED BY 'motdepasse';
GRANT ALL PRIVILEGES ON nombasededonnées.* TO 'utilisateur'@'ip' WITH GRANT OPTION;
FLUSH PRIVILEGES;

Par exemple pour donner accès à la base de données supermalekal à l’utilisateur malekal sur localhost avec le mot de passe 9ez5Ds4sd5ez :

CREATE USER 'malekal'@'localhost' IDENTIFIED BY '9ez5Ds4sd5ez ';
GRANT ALL PRIVILEGES ON supermalekal.* TO 'malekal'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
Créer une base de données et un utilisateur sur MySQL
Bravo ! vous avez réussi à créer une base de données et son utilisateur sur MySQL de Debian 12.

Démarrer, Arrêter, redémarrer MySQL

MySQL fonctionne en service (daemon), on peut donc arrêter, redémarrer MySQL avec systemctl.
Pour rappel, il existe un article sur le fonctionnement des services Linux :

Ainsi pour redémarrer MySQL, on peut utiliser une de ces deux commandes :

systemctl restart mysql.service

ou

/etc/init.d/mysql restart

Pour arrêter MySQL :

systemctl stop mysql.service

ou

/etc/init.d/mysql stop

Vérifier le fonctionnement de MySQL :

systemctl status mysql.service
Vérifier le statut du service MySQL

Lorsque le serveur de base de données est en cours de fonctionnement, on obtient en vert : Active: active (running).
Le PID du processus est alors indiqué.

 mariadb.service - MariaDB 10.3.27 database server
   Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2021-03-31 08:53:00 UTC; 14min ago
     Docs: man:mysqld(8)
           https://mariadb.com/kb/en/library/systemd/
 Main PID: 2784 (mysqld)
   Status: "Taking your SQL requests now..."
    Tasks: 31 (limit: 4915)
   Memory: 81.2M
   CGroup: /system.slice/mariadb.service
           └─2784 /usr/sbin/mysqld

Pour le démarrer :

systemctl start mysql

Déplacer le répertoire /var/lib/mysql

Par défaut, les bases de données sont stockés dans le répertoire /var/lib/mysql.
Selon le partitionnement de disque, il peut être nécessaire de déplacer le répertoire /var/lib/mysql.
Voici comment déplacer le dossier MySQL par exemple vers /home/mysql.

mkdir /home/mysql
chown mysql.mysql /home/mysql

Puis on arrête MySQL :

systemctl stop mysql

Copiez les bases de données vers le nouvel emplacement :

cp -R -p /var/lib/mysql/* /home/mysql

Ensuite on modifie la configuration MySQL :

/etc/mysql/mariadb.conf.d/50-server.cnf

Puis modifiez le paramètre datadir :

datadir                 = /home/mysql

Modifiez la configuration du service MySQL, éditez le fichier /etc/systemd/system/multi-user.target.wants/mariadb.service puis passez ProtectHome sur false :

vim /etc/systemd/system/multi-user.target.wants/mariadb.service
ProtectHome=false

Si apparmor est installé, il faut autoriser.
Editez le fichier /etc/apparmor.d/usr.sbin.mysqld pour modifier toutes les références /var/lib/mysql vers /home/mysql

/etc/apparmor.d/usr.sbin.mysqld

Enfin on relance tous les services :

systemctl daemon-reload
/etc/init.d/apparmor reload
/etc/init.d/mysql restart
Changer le dossier MySQL sur Debian

Si vous rencontrez une erreur au redémarrage de MySQL, vérifiez les journaux /var/log/mysql/error.log ou /var/log/daemon.log.
Le cas typique étant une erreur Can’t change dir to lorsque les permissions de fichiers ne sont pas corrects ou ProtectHome n’a pas été modifié.

Mar 31 09:29:46 nsXXX mysqld[4795]: #007/usr/sbin/mysqld: Can't change dir to '/home/mysql/' (Errcode: 13 "Permission denied")
erreur Can't change dir to au démarrage de MySQL
Bravo ! vous avez réussi à déplacer le dossier MySQL de Debian 10.

Optimiser MySQL

Pour les réglages d’optimisations de MySQL, reportez-vous à ce tutoriel :

Supprimer Mariadb de Debian

Vous n’avez plus besoin de Mariadb sur votre serveur Debian et souhaitez le supprimer complètement.

  • Pour désinstaller et supprimer Mariadb de Debian, on utilise aussi APT :
 apt purge mariadb-server-10.3
  • Appuyez sur Y pour valider la suppression des paquets
Supprimer Mariadb de Debian
  • Puis indiquez si vous désirez supprimer l’intégralité des bases de données.
Supprimer Mariadb de Debian
  • La désinstallation et suppression de MySQL se termine
Bravo ! vous avez réussi à supprimer MySQL de Debian 12.