MySQL : installation sur Ubuntu 20.04

MySQL est l’une des bases de données open source les plus populaires. Elle est connue pour ses performances, sa fiabilité et son évolutivité et est utilisée dans de nombreux domaines, des petits systèmes d’hébergement Web aux grandes applications d’entreprise. Nous vous expliquons chaque étape du processus d’installation de MySQL sur Ubuntu 20.04 pour mettre en place un système de gestion de base de données fiable.

Quelles sont les exigences de MySQL pour Ubuntu 20.04 ?

Dans l’ensemble, la configuration requise pour MySQL sur Ubuntu 20.04 est relativement faible et devrait pouvoir être satisfaite par la plupart des systèmes modernes de bureau ou de serveur. Il est important de noter que la configuration requise peut varier en fonction de l’utilisation et de la taille de la base de données. Par exemple, si vous exécutez une application qui utilise des bases de données volumineuses ou des requêtes complexes, des exigences plus élevées en termes de RAM et de processeur sont nécessaires. Il est recommandé de disposer d’une capacité de disque importante pour anticiper une croissance future et l’ajout de bases de données supplémentaires.

Pour une communication sans faille entre le serveur MySQL et les clients, il convient également de vérifier soigneusement la configuration du réseau et les paramètres du pare-feu. Le serveur MySQL devrait disposer d’une adresse IP statique afin d’éviter les problèmes de connexion.

MySQL requiert la configuration minimale suivante pour votre matériel et vos logiciels :

  • Processeur (CPU) : architecture x86-64, min. 1 GHz (Dual-Core)
  • Mémoire vive (RAM) : min. 1 GB
  • Système d’exploitation : Ubuntu 20.04, utilisateur sudo avec droits root
  • Pare-feu : port MySQL ouvert 3306
  • Espace disque dur: min. 500 MB
  • Connexion Internet : pour télécharger des paquets et se connecter au serveur MySQL

Serveurs dédiés avec IONOS

Au croisement du hardware et du Cloud : des serveurs dédiés avec intégration Cloud et facturation à la minute + conseiller personnel ! 

Assistance 24/7
Trafic illimité
Certificat SSL

Instructions étape par étape : configurer MySQL sur Ubuntu 20.04

Vous pouvez installer MySQL sur Ubuntu 20.04 en utilisant le système de gestion de paquets APT (Advanced Package Tool). Après l’installation, vous devez installer et configurer MySQL avant de pouvoir l’utiliser en production. Dans ce contexte, vous devez notamment définir le mot de passe root et l’accès pour les clients externes. Nous vous montrons dans notre tutoriel, étape par étape, comment procéder.

Étape 1 : mettre à jour l’index des paquets

Dans un premier temps, il est conseillé de mettre à jour la liste des paquets. Pour ce faire, exécutez la commande suivante :

$ sudo apt update
bash

Étape 2 : installer le serveur MySQL

Installez maintenant le package du serveur MySQL avec APT :

$ sudo apt install mysql-server
bash

Pour vérifier que le serveur est bien en cours d’exécution, vous pouvez le démarrer manuellement avec la commande systemctl :

$ sudo systemctl start mysql.service
bash

Étape 3 : configurer MySQL

Après l’installation, MySQL ne répond pas encore aux normes de sécurité recommandées. Pour y remédier, MySQL propose un script qui modifie les paramètres de protection du serveur. Il s’occupe par exemple de la configuration du mot de passe root, de la suppression des utilisateurs anonymes et de la limitation des accès à distance.

Toutefois, certaines précautions doivent être prises pour que le script s’exécute correctement. En effet, l’application souhaite modifier le mot de passe du compte root, qui est désactivé par défaut sous Ubuntu. Pour éviter une erreur, vous devez adapter la méthode d’authentification de l’utilisateur root.

Lancez l’invite de commande MySQL :

$ sudo mysql
bash

Utilisez la commande ALTER USER pour définir un mot de passe pour l’administrateur root :

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
bash

Refermez l’invite de MySQL :

mysql> exit
bash

Exécutez le script de sécurité :

$ sudo mysql_secure_installation
bash

Pour vous authentifier en tant qu’utilisateur root, saisissez les informations suivantes :

$ mysql -u root -p
bash

Une fois le script terminé, vous pouvez à nouveau modifier la méthode d’authentification par défaut :

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH auth_socket;
bash

Cela vous permettra de vous connecter à nouveau avec la commande sudo mysql.

Étape 4 : créer un utilisateur MySQL

L’installation de MySQL crée un utilisateur root qui dispose de tous les privilèges pour le serveur MySQL et qui a un contrôle complet sur toutes les bases de données, les tables et les utilisateurs. Pour plus de sécurité, il est donc conseillé de créer un utilisateur avec des droits limités.

Pour ce faire, appelez l’invite de commande MySQL :

$ sudo mysql
bash

Si la méthode d’authentification est un mot de passe, utilisez l’expression suivante :

$ mysql -u root -p
bash

Créez maintenant un nouvel utilisateur pour MySQL :

mysql> CREATE USER 'username'@'host' IDENTIFIED WITH authentication_plugin BY 'password';
bash

Au lieu de « username », indiquez votre nom d’utilisateur et au lieu de « host », indiquez le nom de votre hôte. Si vous exécutez Ubuntu en local, écrivez localhost. L’expression « WITH authentication_plugin » est facultative. Le plugin « auth_socket » dispose de paramètres de sécurité forts et n’a pas besoin de mot de passe pour se connecter.

Si rien d’autre n’est spécifié, MySQL utilise le plugin « caching_sha2_passwor »“ pour l’authentification. Certaines versions de PHP ne sont toutefois pas compatibles avec ce dernier. À la place, vous pouvez utiliser le plugin « mysql_native_password », plus ancien mais qui a fait ses preuve :

mysql> CREATE USER 'username'@'host' IDENTIFIED WITH mysql_native_password BY 'password';
bash

Ou utiliser la fonction « ALTER » pour un utilisateur existant :

mysql> ALTER 'username'@'host' IDENTIFIED WITH mysql_native_password BY 'password';
bash

Étape 5 : attribuer des droits

Déterminez maintenant quels privilèges le nouvel utilisateur doit avoir. La syntaxe générale est la suivante :

mysql> GRANT PRIVILEGE ON database.table TO 'username'@'host';
bash

Les privilèges multiples sont séparés par une virgule. Pour appliquer les droits global, remplacez chaque fois « database.table » par un astérisque (« * »).

Dans l’exemple suivant, nous donnons à un utilisateur le droit de créer (CREATE), de modifier (ALTER), de supprimer (DROP) des bases de données et d’insérer (INSERT), de sélectionner (SELECT), de mettre à jour (UPDATE) et de supprimer (DELETE) des données dans une table).

mysql> GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT on *.* TO 'user'@'host' WITH GRANT OPTION;
bash

Avec l’option « WITH GRANT OPTION », l’utilisateur peut également accorder ses droits à d’autres personnes.

Videz maintenant le cache avec « FLUSH PRIVILEGES » :

mysql> FLUSH PRIVILEGES;
bash

Vous pouvez ensuite fermer l’invite de commande MySQL :

mysql> exit
bash

Connectez-vous avec votre nouveau nom d’utilisateur :

$ mysql -u username -p
bash

Étape 6 : tester MySQL

Vérifiez que MySQL s’exécute correctement, par exemple avec le gestionnaire de système Systemd:

$ systemctl status mysql.service
bash

Vous pouvez également vous connecter à la base de données MySQL. La commande suivante permet de se connecter à MySQL et d’afficher la version du serveur :

$ sudo mysqladmin -p -u username version
bash