Installer MySQL 5.0.24 sur FreeBSD

Frédéric Mereu

Le but de cet article est de vous accompagner lors de l'installation et de la configuration de MySQL sur un système BSD.

- Titre : Installer MySQL 5.0.24 sur FreeBSD

- Auteur : Frédéric Mereu

- Parution : 2 septembre 2006

- Mise à jour : 2 septembre 2006

- Licence : Copyright ® 2006 freed0. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Avant-Propos

- II. Téléchargement des sources

- III. Création de l'utilisateur mysql

- IV. Compilation et installation de MySQL

- V. Quelques vérifications s'imposent...

- VI. Remplacement du mot de passe root

- VII. Configuration de MySQL à l'aide du fichier my.cnf

I - Avant-Propos

L'utilisation de MySQL en tant que système de bases de données est un bon choix étant donnés les principaux avantages de ce dernier. En effet, MySQL est un logiciel gratuit, open-source, rapide, robuste et largement supporté par une communauté de développement sans cesse grandissante. Sa grande utilisation sur Internet n'est plus à démontrer, et une fois couplé à PHP, la puissance qui en résulte suffit à la réalisation de la plupart des projets de chacun.

Au cours de cet article, je vous expliquerai pas à pas comment installer la dernière version stable de MySQL (actuellement la 5.0.24) sur un système BSD. Tout ce dont vous avez besoin est un compte root et une connexion à Internet si vous envisagez de télécharger les sources de MySQL sur la toile.

II - Téléchargement des sources

La première chose à faire est donc de télécharger les sources de MySQL. Vous les trouverez sur le site officiel du logiciel, dans la section Downloads de la Developer Zone (http://dev.mysql.com/downloads/). Cliquez sur le lien nommé Current Release. Les sources se situent tout en bas de la page, sous le nom de Source downloads. Etant donné que nous utilisons FreeBSD, le plus simple pour nous sera de prendre l'archive tarball (.tar.gz). La taille de l'archive est de 19 Mo.

Au cours de mon explication, je supposerai que les sources se trouvent dans le répertoire /usr/src.

III - Création de l'utilisateur mysql

Avant de compiler MySQL à proprement parler, il est nécessaire de créer le compte utilisateur mysql, identité sous laquelle le serveur MySQL sera lancé. L'utilisateur mysql appartiendra au groupe nommé lui aussi mysql que nous créerons également.

Création de l'utilisateur mysql

# pw groupadd mysql
# adduser
Username: mysql
Full name: mysql
Uid (Leave empty for default):
Login group [mysql]: mysql
Login group is mysql. Invite test into other groups? []:
Login class [default]:
Shell (sh csh tcsh nologin) [sh]:
Home directory [/home/mysql]: /usr/local/mysql/
Use password-based authentication? [yes]:
Use an empty password? (yes/no) [no]:
Use a random password? (yes/no) [no]:
Enter password:
Enter password again:
Lock out the account after creation? [no]:
Username : mysql
Password : *****
Full Name : mysql
Uid : 1004
Class :
Groups : mysql
Home : /usr/local/mysql/
Shell : /bin/sh
Locked : no
OK? (yes/no): yes
adduser: INFO: Successfully added (mysql) to the user database.
Add another user? (yes/no): no
Goodbye!
#

Les valeurs entre crochets ([yes], [sh], …) sont les valeurs par défaut. Cela signifie que si vous n'entrez aucune valeur et que vous validez, c'est cette valeur qui sera utilisée. Notez que le répertoire utilisateur de mysql est en fait le répertoire où l'on installera MySQL par la suite (/usr/local/mysql).

Dernier petit détail avant la compilation : il faut créer 3 sous-dossiers dans /usr/local/mysql.

# mkdir /usr/local/mysql/data
# mkdir /usr/local/mysql/tmp
# mkdir /usr/local/mysql/var
# chmod 775 /usr/local/mysql/data /usr/local/mysql/tmp /usr/local/mysql/var

IV - Compilation et installation de MySQL

Nous allons maintenant décompresser l'archive que nous avons téléchargée et nous rendre dans le dossier créé :

Décompression

# cd /usr/src
# tar -xzvf mysql-5.0.24.tar.gz
# rm mysql-5.0.24.tar.gz
# cd mysql-5.0.24

On lance le script configure en spécifiant le répertoire où l'on souhaite installer MySQL ainsi que celui où seront stockées les données (localstatedir). On indique aussi l'emplacement du socket qui sera créé par le serveur MySQL. Pour voir toutes les options possibles, effectuez ./configure --help.

Script configure

# ./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/data --with-unix-socket-path=/usr/local/mysql/tmp/mysql.socket

On finit par compiler et installer.

Compilation et installation

# make
# make install

V - Quelques vérifications s'imposent...

Maintenant que MySQL est installé, nous allons pouvoir le lancer. Cela nécessite d'installer les bases de données préexistantes en effectuant la commande suivante :

# cd /usr/local/mysql/bin
# ./mysql_install_db --user=mysql

On peut donc enfin lancer le serveur :

Lancement du serveur MySQL

# ./mysqld_safe --user=mysql &

MySQL inclut quelques outils utiles qui vont nous permettre de vérifier que notre serveur fonctionne bel et bien :

# ./mysqladmin version
Server version 5.0.24
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /usr/local/mysql/tmp/mysql.socket
Uptime: 1 min 25 sec
# ./mysqlshow
+--------------------+
|     Databases      |
+--------------------+
| information_schema |
| mysql              |
| test               |
+--------------------+
#

Pour stopper le serveur MySQL, effectuez la commande suivante :

Arrêt du serveur MySQL

# ./mysqladmin -u root shutdown

VI - Remplacement du mot de passe root

Le compte root créé à l'installation du serveur MySQL possède tous les droits. Il peut aussi bien supprimer n'importe quelle base de données qu'ajouter ou supprimer un utilisateur. Cela implique la mise en place d'un mot de passe pour ce compte qu'il ne faut pas laisser entre toutes les mains.

Le changement de mot de passe se fait via mysqladmin. Lorsqu'un mot de passe est ajouté, il est crypté et est ensuite ajouté dans la table user située dans la base de donnée nommée mysql.

Changement du mot de passe root

# ./mysqladmin -u root password monpass

Ainsi, le nouveau mot de passe du compte root sera monpass.

Enfin, n'oubliez pas que l'ajout d'un mot de passe implique l'ajout du flag -p dans chacune des commandes relatives à MySQL. Par exemple :

# ./mysql -u root -p
# ./mysqladmin -u root -p shutdown # ./mysqladmin -p version

Si vous oubliez ce dernier, le message d'erreur suivant apparaîtra :

error: 'Access denied for user 'root'@'localhost' (using password: NO)'

VII - Configuration de MySQL à l'aide du fichier my.cnf

Je vais terminer par l'utilisation du fichier my.cnf. L'utilisation de ce fichier est facultative mais elle permet de préciser quelques options comme le port d'écoute du serveur MySQL.

Le fichier original se trouve dans le répertoire /share/mysql de MySQL. Dans notre cas, il se situe donc dans /usr/local/mysql/share/mysql. En parcourant le dossier, vous remarquerez que le fichier my.cnf en lui-même n'existe pas. En effet, nous retrouvons à la place quatre fichiers : my-small.cnf, my-medium.cnf, my-large.cnf et enfin my-huge.cnf. Vous allez devoir choisir un de ces quatre fichiers d'après la puissance de votre machine pour ensuite le placer dans /etc sous le nom de my.cnf. Ma machine possédant 320 Mo de RAM, je choisirai le fichier my-medium.cnf.

# cd /usr/local/mysql/share/mysql
# cp my-medium.cnf /etc/my.cnf

Le fichier my.cnf sera pris en compte lors de la prochaine exécution du serveur. Vous pourrez voir que le fichier est divisé en deux parties : [client] pour le client et [mysqld] pour le serveur.

La partie client ne possède pas beaucoup d'options, quoique vous puissiez en rajouter. Son principal intérêt est de se connecter rapidement à un serveur MySQL défini dans le fichier my.cnf. Dans l'exemple qui suit, le client mysql se connectera à localhost sur le port 3316 en utilisant le compte paul créé auparavant.

my.cnf

[client]
host = localhost
port = 3316
user = paul
password = sonpass
socket = /usr/local/mysql/tmp/mysql.socket

Nous avons donc rajouté deux champs ; host qui spécifie l'hôte auquel le client MySQL se connecte, et user qui définit l'utilisateur utilisé par défaut par le client.

Coté serveur, on peut également ajouter le champ user. Ainsi, nous n'aurons plus besoin de le spécifier lorsque nous lancerons mysqld_safe.

Je vais m'arrêter ici concernant l'utilisation de my.cnf. Vous trouverez d'autres informations à ce sujet sur le site officiel de MySQL (http://www.mysql.com).

L'installation de MySQL est maintenant achevée. N'hésitez pas à consulter la documentation si vous avez des questions, elle répondra à la majorité d'entre elles. Cependant, s'il reste des questions auxquelles vous ne trouvez aucune solution, n'hésitez pas à me contacter ou à vous rendre sur le forum de developpez.com (https://www.developpez.net) qui possède une section SQL.