Configuration de MySQL

0 comprend le serveur de bases de données MySQL. Il n'est pas préconfiguré et a besoin d'être initialisé manuellement la première fois. 2 scripts s'occupent de la création des bases standards de fonctionnement de MySQL et de leur sécurisation.

Les choses à faire, dans l'ordre :

  1. Créer les bases obligatoires pour le fonctionnement de MySQL via le script fourni
  2. Démarrer le serveur avec le fichier service
  3. Sécuriser l'installation via l'autre script fourni

Les bases de MySQL (et donc celles qu'on créera plus tard également) se trouvent toutes dans /var/lib/mysql.

Installation des bases

On passe en root avant toute chose :

su -
<Mot de passe>

On lance le script mysql_install_db, avec l'utilisateur MySQL de 0 , mysql :

mysql_install_db --user=mysql

:!: Le mot de passe root dont vous parle le script n'est PAS celui de votre système, mais bel et bien le super-utilisateur de MySQL, également appelé root. Ce mot de passe est pour le moment vide, il n'y a donc qu'à appuyer syr ENTRÉE. On va le changer ensuite.

:?: Note : On pourra changer plus tard le nom du super-utilisateur de MySQL, afin de ne plus le confondre avec le root du système !

Tout devrait bien se dérouler. Quand le script vous rend la main, il est alors possible de démarrer le serveur MySQL car les bases internes existent désormais.

Démarrage du serveur

On active le service (uniquement si on veut que MySQL démarre avec l'ordinateur) et on on démarre le serveur MySQL :

systemctl enable mysqld
systemctl start mysqld

Si le terminal ne vous rend pas la main, c'est juste un souci d'affichage, appuyez sur ENTRÉE à nouveau pour faire réapparaître l'invite de commande.

Votre serveur MySQL tourne.

Sécurisation de MySQL

Il s'agit maintenant de le sécuriser, ajouter un mot de passe général, supprimer les bases de tests et les bases redondantes, etc. Le script mysql_secure_installation va s'occuper de tout ça :

mysql_secure_installation

Suivez les instructions du script, malheureusement en anglais, qui va vous demander si vous voulez supprimer les bases de test de les bases redondantes (de toute façon inutiles) et un mot de passe général pour sécuriser MySQL.

Renommer root pour encore plus de sécurité

On peut en sus renommer le root de MySQL afin de se débarrasser des attaques venant du réseau, lesquelles testent le mot de passe du super-utilisateur. Pour cela, on se connecte à l'interpréteur (ou shell) mysql en tant que root puis on modifie la base des utilisateurs pour changer le nom de root en quelque chose d'autre. On se connecte d'abord en root à MySQL :

root@0linux:~# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 106
Server version: 5.1.57-log Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>

On se place sur la base nommée mysql :

mysql> use mysql
Database changed

Puis on renomme l'utilisateur root, par exemple :

mysql> RENAME USER root@localhost TO superbasededonneesman@localhost;

On purge les privilèges utilisateur afin de ne pasvoir à relancer le serveur :

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

On quitte MySQL et on se reconnecte pour s'assurer que tout s'est bien passé :

root@0linux:~# mysql -u superbasededonneesman -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 147
Server version: 5.1.57-log Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> 

Le serveur MySQL est sécurisé.