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 :
- Créer les bases obligatoires pour le fonctionnement de MySQL via le script fourni
- Démarrer le serveur avec le fichier service
- 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é.