MySQL est l’une des bases de données open source les plus po­pu­laires. Elle est connue pour ses per­for­mances, sa fiabilité et son évo­lu­ti­vité et est utilisée dans de nombreux domaines, des petits systèmes d’hé­ber­ge­ment Web aux grandes ap­pli­ca­tions d’en­tre­prise. Nous vous ex­pli­quons chaque étape du processus d’ins­tal­la­tion 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 con­fi­gu­ra­tion requise pour MySQL sur Ubuntu 20.04 est re­la­ti­ve­ment faible et devrait pouvoir être sa­tis­faite par la plupart des systèmes modernes de bureau ou de serveur. Il est important de noter que la con­fi­gu­ra­tion requise peut varier en fonction de l’uti­li­sa­tion et de la taille de la base de données. Par exemple, si vous exécutez une ap­pli­ca­tion qui utilise des bases de données vo­lu­mi­neuses ou des requêtes complexes, des exigences plus élevées en termes de RAM et de pro­ces­seur sont né­ces­saires. Il est re­com­mandé de disposer d’une capacité de disque im­por­tante pour anticiper une crois­sance future et l’ajout de bases de données sup­plé­men­taires.

Pour une com­mu­ni­ca­tion sans faille entre le serveur MySQL et les clients, il convient également de vérifier soig­neu­se­ment la con­fi­gu­ra­tion du réseau et les pa­ra­mè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 con­fi­gu­ra­tion minimale suivante pour votre matériel et vos logiciels :

  • Pro­ces­seur (CPU) : ar­chi­tec­ture x86-64, min. 1 GHz (Dual-Core)
  • Mémoire vive (RAM) : min. 1 GB
  • Système d’ex­ploi­ta­tion : Ubuntu 20.04, uti­li­sa­teur sudo avec droits root
  • Pare-feu : port MySQL ouvert 3306
  • Espace disque dur: min. 500 MB
  • Connexion Internet : pour té­lé­char­ger des paquets et se connecter au serveur MySQL
Serveurs dédiés
Per­for­mance et in­no­va­tion
  • Pro­ces­seurs dernière gé­né­ra­tion
  • Hardware dédié haute per­for­mance
  • Data centers certifiés ISO

Ins­truc­tions étape par étape : con­fi­gu­rer 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’ins­tal­la­tion, vous devez installer et con­fi­gu­rer MySQL avant de pouvoir l’utiliser en pro­duc­tion. 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 main­te­nant 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 ma­nuel­le­ment avec la commande systemctl :

$ sudo systemctl start mysql.service
bash

Étape 3 : con­fi­gu­rer MySQL

Après l’ins­tal­la­tion, MySQL ne répond pas encore aux normes de sécurité re­com­man­dées. Pour y remédier, MySQL propose un script qui modifie les pa­ra­mètres de pro­tec­tion du serveur. Il s’occupe par exemple de la con­fi­gu­ra­tion du mot de passe root, de la sup­pres­sion des uti­li­sa­teurs anonymes et de la li­mi­ta­tion des accès à distance.

Toutefois, certaines pré­cau­tions doivent être prises pour que le script s’exécute cor­rec­te­ment. En effet, l’ap­pli­ca­tion 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’au­then­ti­fi­ca­tion de l’uti­li­sa­teur root.

Lancez l’invite de commande MySQL :

$ sudo mysql
bash

Utilisez la commande ALTER USER pour définir un mot de passe pour l’ad­mi­nis­tra­teur 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 au­then­ti­fier en tant qu’uti­li­sa­teur root, saisissez les in­for­ma­tions suivantes :

$ mysql -u root -p
bash

Une fois le script terminé, vous pouvez à nouveau modifier la méthode d’au­then­ti­fi­ca­tion 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 uti­li­sa­teur MySQL

L’ins­tal­la­tion de MySQL crée un uti­li­sa­teur root qui dispose de tous les pri­vi­lèges pour le serveur MySQL et qui a un contrôle complet sur toutes les bases de données, les tables et les uti­li­sa­teurs. Pour plus de sécurité, il est donc conseillé de créer un uti­li­sa­teur avec des droits limités.

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

$ sudo mysql
bash

Si la méthode d’au­then­ti­fi­ca­tion est un mot de passe, utilisez l’ex­pres­sion suivante :

$ mysql -u root -p
bash

Créez main­te­nant un nouvel uti­li­sa­teur pour MySQL :

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

Au lieu de « username », indiquez votre nom d’uti­li­sa­teur et au lieu de « host », indiquez le nom de votre hôte. Si vous exécutez Ubuntu en local, écrivez localhost. L’ex­pres­sion « WITH au­then­ti­ca­tion_plugin » est fa­cul­ta­tive. Le plugin « auth_socket » dispose de pa­ra­mè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’au­then­ti­fi­ca­tion. Certaines versions de PHP ne sont toutefois pas com­pa­tibles 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 uti­li­sa­teur existant :

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

Étape 5 : attribuer des droits

Dé­ter­mi­nez main­te­nant quels pri­vi­lèges le nouvel uti­li­sa­teur doit avoir. La syntaxe générale est la suivante :

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

Les pri­vi­lèges multiples sont séparés par une virgule. Pour appliquer les droits global, remplacez chaque fois « database.table » par un as­té­risque (« * »).

Dans l’exemple suivant, nous donnons à un uti­li­sa­teur le droit de créer (CREATE), de modifier (ALTER), de supprimer (DROP) des bases de données et d’insérer (INSERT), de sé­lec­tion­ner (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’uti­li­sa­teur peut également accorder ses droits à d’autres personnes.

Videz main­te­nant le cache avec « FLUSH PRI­VI­LEGES » :

mysql> FLUSH PRIVILEGES;
bash

Vous pouvez ensuite fermer l’invite de commande MySQL :

mysql> exit
bash

Connectez-vous avec votre nouveau nom d’uti­li­sa­teur :

$ mysql -u username -p
bash

Étape 6 : tester MySQL

Vérifiez que MySQL s’exécute cor­rec­te­ment, par exemple avec le ges­tion­naire 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
Aller au menu principal