Comment installer MySQL sur Ubuntu 18.04

MySQL est le système de gestion de base de données relationnelle open source le plus populaire. Il est rapide, facile à utiliser, évolutif et fait partie intégrante du populaireLAMPetLEMPpiles.

Dans ce tutoriel, nous allons vous montrer comment installer et sécuriser MySQL sur une machine Ubuntu 18.04.

Conditions préalables #

Assurez-vous que vous êtes connecté en tant qu’utilisateur avec des privilèges sudo.

Installer MySQL sur Ubuntu #

Au moment de la rédaction de cet article, la dernière version de MySQL disponible dans les référentiels Ubuntu officiels est MySQL version 5.7.

Pour installer MySQL sur votre serveur Ubuntu, suivez les étapes ci-dessous:

  1. Tout d’abord, mettez à jour l’index du package apt en tapant:

    sudo apt update
  2. Installez ensuite le package MySQL avec la commande suivante:

    sudo apt install mysql-server
  3. Une fois l’installation terminée, le service MySQL démarre automatiquement. Pour vérifier si le serveur MySQL fonctionne, tapez:

    sudo systemctl status mysql
    ● mysql.service - MySQL Community Server
       Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
       Active: active (running) since Wed 2018-06-20 11:30:23 PDT; 5min ago
     Main PID: 17382 (mysqld)
        Tasks: 27 (limit: 2321)
       CGroup: /system.slice/mysql.service
               `-17382 /usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid

Sécuriser MySQL #

Le package serveur MySQL est livré avec un script appelémysql_secure_installationqui peut effectuer plusieurs opérations liées à la sécurité.

Exécutez le script en tapant:

sudo mysql_secure_installation

Il vous sera demandé de configurer le VALIDATE PASSWORD PLUGIN qui est utilisé pour tester la force des mots de passe des utilisateurs MySQL et améliorer la sécurité. Il existe trois niveaux de politique de validation des mots de passe: faible, moyen et fort. presseENTERsi vous ne souhaitez pas configurer le plug-in de validation de mot de passe.

À l’invite suivante, il vous sera demandé de définir un mot de passe pour l’utilisateur root MySQL. Une fois que vous avez fait cela, le script vous demandera également de supprimer l’utilisateur anonyme, de restreindre l’accès des utilisateurs root à la machine locale et de supprimer la base de données de test. Vous devez répondre «Y» (oui) à toutes les questions.

Connectez-vous en tant que root #

Pour interagir avec le serveur MySQL à partir de la ligne de commande, vous pouvez utiliser l’utilitaire client MySQL qui est installé en tant que dépendance du package serveur MySQL.

Dans les systèmes Ubuntu exécutant MySQL 5.7 (et versions ultérieures), l’utilisateur root est authentifié par leauth_socketplugin par défaut.

leauth_socketplugin authentifie les utilisateurs qui se connectent à partir dulocalhostvia le fichier socket Unix. Cela signifie que vous ne pouvez pas vous authentifier en tant que root en fournissant un mot de passe.

Pour vous connecter au serveur MySQL en tant qu’utilisateur root:

sudo mysql

Le shell MySQL vous sera présenté comme indiqué ci-dessous:

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 5.7.22-0ubuntu18.04.1 (Ubuntu)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

Si vous souhaitez vous connecter à votre serveur MySQL en tant que root à partir d’un programme externe tel que phpMyAdmin, vous avez deux options.

La première consiste à changer la méthode d’authentification deauth_socketàmysql_native_password. Vous pouvez le faire en exécutant la commande suivante:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'very_strong_password';FLUSH PRIVILEGES;

La deuxième option recommandée consiste à créer un nouvel utilisateur administratif avec accès à toutes les bases de données:

GRANT ALL PRIVILEGES ON *.* TO 'administrator'@'localhost' IDENTIFIED BY 'very_strong_password';