Installer et configurer MySQL
Passons maintenant à l'installation de notre base de données favorite (... ou pas, mais quand même bien pratique avec PHP).

Installer MySQL

apt-get install mysql-server

Les paquets suivants devraient être installés:
libdbd-mysql-perl libdbi-perl libnet-daemon-perl libplrpc-perl
  mysql-client-5.0 mysql-server mysql-server-5.0 psmisc

Comme nous l'avions vu dans le chapitre précedent, il existe un package php5-mysql qui va nous permettre d'installer la prise en charge de MySQL dans PHP.
apt-get install php5-mysql

Les paquets suivants devraient être installés:
libmysqlclient15off mysql-common php5-mysql

MySQL est maintenant installé, passons à sa configuration.

Configurer MySQL

Changer le mot de passe root de MySQL

Première chose à faire, car assez critique, attribuer un mot de passe root à votre serveur MySQL si celui-ci ne vous est pas demandé lors de l'installation précédente. Pour cela taper :
mysql

Vous verres alors apparaitre ceci :
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 8
Server version: 5.0.32-Debian_7etch8-log Debian etch distribution
Type 'help;' or 'h' for help. Type 'c' to clear the buffer.
mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> UPDATE user SET password = PASSWORD('VOTREPASSMYSQL') WHERE user = 'root';
Query OK, 2 rows affected (0.00 sec)
Rows matched: 2  Changed: 2  Warnings: 0
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql>quit
Bye

Voilà, maintenant votre mot de passe root est défini (N'oubliez pas de remplacer VOTREPASSMYSQL par votre propre mot de passe ...)
La configuration de base de MySQL suffit pour notre environnement web, si vous souhaitez modifier des options spécifiques, modifiez le fichier
/etc/mysql/my.cnf

Se connecter à MySQL

mysql -h localhost -u root -p

Créer un nouvel utilisateur

GRANT ALL PRIVILEGES ON elevage.* TO 'sdz'@'localhost' IDENTIFIED BY 'mot_de_passe';

GRANT ALL PRIVILEGES : Cette commande permet d'attribuer tous les droits (c'est-à-dire insertions de données, sélections, modifications, suppressions…)
ON elevage.* : définit les bases de données et les tables sur lesquelles ces droits sont acquis. Donc ici, on donne les droits sur la base "elevage" (qui n'existe pas encore, mais ce n'est pas grave, nous la créerons plus tard), pour toutes les tables de cette base (grâce à *).
TO 'sdz' : définit l'utilisateur auquel on accorde ces droits. Si l'utilisateur n'existe pas, il est créé.
• @'localhost' : définit à partir d'où l'utilisateur peut exercer ces droits. Dans notre cas, 'localhost', donc il devra être connecté à partir de cet ordinateur.
IDENTIFIED BY 'mot_de_passe': définit le mot de passe de l'utilisateur.