Aller au contenu

MySQL : installation sur Ubuntu

MySQL est un système de gestion de base de données relationnelle. Ce guide l’installe sur Ubuntu 24.04 et 26.04 et se limite à l’usage en ligne de commande. Les exemples utilisent des noms génériques (boutique, app).

Ubuntu Paquet mysql-server Statut
24.04 MySQL 8.0 Fin de support en avril 2026 : à éviter pour une nouvelle installation
26.04 MySQL 8.4 LTS Version à privilégier

Pour obtenir MySQL 8.4 LTS sur Ubuntu 24.04, utiliser le dépôt APT officiel de MySQL (dev.mysql.com/downloads/repo/apt). Ubuntu propose aussi MariaDB (mariadb-server), un dérivé compatible : les commandes de ces guides s’y appliquent en grande partie, avec le client mariadb.

Fenêtre de terminal
sudo apt update
sudo apt install mysql-server

Vérifier le service et la version :

Fenêtre de terminal
sudo systemctl status mysql
mysql --version
sudo systemctl enable --now mysql # démarrage automatique

Sur Ubuntu, le compte root de MySQL s’authentifie par le compte système (plugin auth_socket) : aucun mot de passe, mais il faut sudo.

Fenêtre de terminal
sudo mysql
SELECT VERSION();
SELECT CURRENT_USER();
EXIT;
Fenêtre de terminal
sudo mysql_secure_installation

L’assistant propose de configurer la politique de mots de passe, de supprimer les comptes anonymes et la base de test, et d’interdire la connexion distante de root. Répondre oui aux suppressions et à l’interdiction de root à distance.

Plutôt que d’utiliser root, créer un compte pour les opérations courantes (voir Utilisateurs et droits) :

Fenêtre de terminal
sudo mysql -e "CREATE USER 'admin'@'localhost' IDENTIFIED BY 'mot_de_passe_solide'; GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' WITH GRANT OPTION;"
Élément Emplacement
Configuration principale /etc/mysql/mysql.conf.d/mysqld.cnf
Configuration du client /etc/mysql/conf.d/mysql.cnf
Données /var/lib/mysql
Journal d’erreurs /var/log/mysql/error.log
Service mysql.service
Fenêtre de terminal
sudo journalctl -u mysql -n 50 --no-pager # logs du service
sudo tail -n 50 /var/log/mysql/error.log

Par défaut, MySQL n’écoute que sur 127.0.0.1 (bind-address = 127.0.0.1) : il n’est pas joignable depuis le réseau.

Les mises à jour de sécurité arrivent avec le système :

Fenêtre de terminal
sudo apt update && sudo apt upgrade
Fenêtre de terminal
sudo apt purge mysql-server mysql-client mysql-common
sudo apt autoremove
Symptôme Piste
Access denied for user 'root'@'localhost' Utiliser sudo mysql (authentification par le compte système)
Can't connect to local MySQL server through socket Le service est arrêté : sudo systemctl start mysql, consulter journalctl -u mysql
Too many connections Réduire les connexions ouvertes par l’application, ou augmenter max_connections
Le service ne démarre pas après modification de la configuration sudo tail /var/log/mysql/error.log : erreur de syntaxe dans le fichier .cnf

Ubuntu 24.04 et 26.04 : différences à connaître

Section intitulée « Ubuntu 24.04 et 26.04 : différences à connaître »