Accueil | Recherche | News | Articles | Téléchargement | Forums | Commentaires | A propos
       
 
Hébergement mutualisé chez OVH

  Recherche
  Catégories

• Apache
• PHP
• Système
• Tomcat

  Webmestres

   Page de démarrage
    Ajouter aux favoris
    Les news sur
    votre site

  Dernières versions

Apache 2.2.8
Apache 2.0.63
Apache 1.3.41
PHP 4.4.7
PHP 5.2.4
MySQL 5.0.45
MySQL 4.1.22
MySQL 4.0.27
phpMyAdmin 2.11.0
Tomcat 5.5.20
Tomcat 4.1.34
Tomcat 3.3.2

  Derniers modules

mod_auth_bsd 1.2
mod_design 0.4
mod_ometer 1.2.0
mod_epp 1.0
mod_mono 0.3.6

  Statistiques

Apache
PHP  

  Documentation

Apache 1.3
Apache 1.3 VF
Apache 2.0
Tomcat 3
Tomcat 4
PHP
MySQL

  Liens

Apache
Apache Project
Jakarta Project
Liste des bugs
Apache Today
Apache Week
Apache Reference
Apache@Slashdot
Reference cards

PHP/MySQL
PHP
MySQL
PHP Index
PHP Team

Accès direct
Imprimer cet article
Version imprimable

Le Guide d'installation d'Apache
06 août 2001

MySQL

Le Système de Gestion de Bases de Données Relationnelles (SGBDR) MySQL doit sa popularité à plusieurs facteurs. Tout d'abord son ouverture sur le monde du logiciel libre, mais également sa simplicité et sa rapidité qui lui ont valu d'être le moteur de bases de données de choix dans les sites Web dynamiques.
En effet, MySQL offre des performances incroyables lors de la consultation de données, ce qui est un critère primordial. A contrario, il n'est que peu adapté pour des applications transactionnelles classiques (Online Transaction Processing, OLTP), le verrouillage lors d'un ajout ou d'une modification se faisant au niveau de la table toute entière. Ajoutons également qu'il ne gère pas les clés étrangères. Ces lacunes n'ont toutefois que peu d'impact dans le cadre d'un site d'information où quelques webmestres ajoutent ponctuellement des news ou des articles.
Désormais libre d'utilisation, MySQL évolue régulièrement et une nouvelle version dénommée MySQL-Max a vu le jour. Celle-ci apporte un meilleur support des transactions et élargit de ce fait le champ d'action de ce moteur aux qualités certaines. Le principal concurrent de MySQL dans le monde du logiciel libre est PostgreSQL. Ce SGBDR a une vocation de base plus généraliste que MySQL et se veut donc plus complet. Ainsi, et entre autres, les clés étrangères sont supportées et la gestion des verrous est plus souple. Par contre, il n'est pas censé offrir la même rapidité en consultation que son concurrent. A ce sujet, je vous renvoie vers deux articles (en Anglais) où les deux moteurs sont comparés : MySQL and PostgreSQL Compared et Database Software Comparison.

Passons maintenant à l'installation de MySQL.
Tout d'abord, dans un souci de sécurité (surtout si votre serveur est sur Internet), il est préférable de faire tourner le moteur MySQL sous le profil d'un utilisateur avec des droits limités plutôt que root. Ainsi, dans l'hypothèse où un pirate pourrait exploiter une brèche de sécurité de MySQL, son champ d'action serait limité aux droits conférés à l'utilisateur fictif.
Tapez les commandes suivantes afin de créer un groupe mysql et un utilisateur mysql :
# groupadd mysql
# useradd -g mysql mysql
Le choix du nom du groupe et de l'utilisateur restent à votre discrétion. Ainsi, si vous préférez mygrp et myusr, la commande à taper sera :
# groupadd mygrp
# useradd -g mygrp myusr


Remarque : sur une Slackware 8.0, même si le package MySQL n'a pas été installé, l'utilisateur mysql et le groupe mysql existent déjà. Cela ne pose pas de problème, mais dans le fichier /etc/passwd, dans la ligne correspondant à mysql, il faut remplacer /var/lib/mysql par /usr/local/mysql.

Ceci fait, décompactez les sources de MySQL et placez-vous dans le répertoire de travail :
# tar xvfz mysql-3.23.43.tar.gz
# cd mysql-3.23.43

Les possibilités de préconfiguration de MySQL sont vastes. Nous allons donc vous en présenter certaines qui devraient vous permettre de déterminer lesquelles utiliser en fonction de vos besoins.
--prefix=répertoire : répertoire sera le répertoire principal de MySQL, les composants seront placés dans des sous-répertoires (bin, share, etc.).
--localstatedir=répertoire : les bases de données et les journaux (logs) seront placés dans le répertoire répertoire (sur un disque de données séparé par exemple).
--without-debug : MySQL ne sera pas compilé pour produire des informations de débogage. Cette option est à sélectionner pour un serveur de production.
--enable-assembler : lors de la compilation, des fonctions de manipulation de chaînes de caractères en assembleur seront utilisées.
--with-client-ldflags=-all-static : les outils client de MySQL (mysql, mysqladmin) seront compilés de façon à ne pas utiliser les librairies dynamiques. Les binaires générés seront plus gros, mais les applications seront plus rapides.
--with-mysqld-ldflags=-all-static : le moteur MySQL (mysqld) sera compilé de façon à ne pas utiliser les librairies dynamiques. Le binaire généré sera plus gros, mais l'application sera plus rapide.
--disable-shared : seules les versions statiques des librairies de MySQL seront générées.

Nous proposons de faire la préconfiguration avec la commande suivante :
# ./configure \
--prefix=/usr/local/mysql-3.23.43 \
--localstatedir=/data/mysql \
--without-debug \
--enable-assembler \
--with-mysqld-ldflags=-all-static
N.B. : les backslashes en fin de ligne permettent, en tapant sur la touche "Entrée", de continuer la saisie de la commande à la ligne suivante et non pas de la valider.
Lancez ensuite la compilation puis l'installation par les commandes suivantes :
# make
# make install


Pour plus de simplicité ultérieurement, nous vous suggérons de créer un lien symbolique nommé mysql vers le répertoire d'installation de MySQL :
# ln -s /usr/local/mysql-3.23.43 /usr/local/mysql
Ainsi, toute référence à la version de MySQL est occultée, ce qui est plus souple et plus évolutif.

Les outils MySQL utilisant les librairies dynamiques, il est nécessaire de configurer le gestionnaire de librairies dynamiques afin qu'il connaisse l'emplacement de ces librairies.
Pour ce faire, tapez la commande suivante :
# echo /usr/local/mysql/lib/mysql >> /etc/ld.so.conf
Procédez ensuite à la mise à jour du cache des librairies :
# ldconfig
# sync

La vérification du bon paramétrage se fera par la commande suivante :
# ldconfig -v | grep mysql
Le résultat devant être :
/usr/local/mysql/lib/mysql:
libmysqlclient.so.10 -> libmysqlclient.so.10.0.0


L'étape suivante consiste à créer les tables système (utile uniquement si MySQL n'a jamais été installé) :
# scripts/mysql_install_db

Lancez les commandes suivantes pour donner les droits sur répertoires de MySQL aux utilisateurs fictifs créés précédemment :
# chown -R root /usr/local/mysql/
# chown -R mysql /data/mysql
# chgrp -R mysql /usr/local/mysql/
# chgrp -R mysql /data/mysql

Le "/" à la fin des commandes portant sur le répertoire /usr/local/mysql est important car il permet que le traitement s'opère sur le répertoire pointé par le lien mysql et non le lien lui-même.

Copiez ensuite le fichier de configuration à sa place :
# cp support-files/my-medium.cnf /etc/my.cnf
Si vous disposez de 512 Mo à 1 Go de mémoire, utilisez le fichier my-large.cnf. Si vous disposez de plus d'1 Go de mémoire, utilisez le fichier my-huge.cnf.
Editez le fichier /etc/my.cnf et ajoutez la ligne suivante dans la section [mysqld] : user = mysql
Ceci permet de spécifier au démon MySQL de tourner avec les droits de l'utilisateur mysql sans avoir à le spécifier sur la ligne de commande.

Une astuce pour gagner en performance : utilisez la commande Unix strip qui retire d'un binaire les symboles utilisés lors de l'édition de lien. Le plus utile est de l'exécuter sur mysqld, le démon MySQL :
# strip /usr/local/mysql/libexec/mysqld

Vous pouvez enfin démarrer le démon MySQL par la commande suivante :
# /usr/local/mysql/bin/safe_mysqld &
Si tout fonctionne bien, MySQL devrait démarrer et vous afficher un message indiquant le répertoire utilisé pour stocker les données (/data/mysql dans notre cas). Pour vérfier si le démon mysqld tourne, utiliser la commande suivante :
# ps | grep mysql
Le résultat devrait ressembler à ceci : 13653 pts/0 00:00:00 safe_mysqld
Vous pouvez également lancer quelques commandes de test :
# /usr/local/mysql/bin/mysqladmin version
# /usr/local/mysql/bin/mysqladmin variables
# /usr/local/mysql/bin/mysqlshow
# /usr/local/mysql/bin/mysqlshow mysql
# /usr/local/mysql/bin/mysql -e "select host,db,user from db" mysql

Lors de son exécution, le script mysql_install_db vous suggère vivement de saisir un mot de passe pour l'utilisateur root de MySQL. Cet utilisateur dispose de tous les privilèges sur les tables systèmes donc ce conseil est bon à suivre.
Vous pouvez le faire par les commandes suivantes :
# /usr/local/mysql/bin/mysqladmin -u root password 'lenouveaumotdepasse'

Pour que le démon MySQL démarre et s'arrête automatiquement, vous pouvez utiliser le fichier mysq.server.
Attention, la méthode suivante s'applique à une distribution Slackware.
Copiez-le dans le répertoire contenant les scripts de démarrage :
# cp support-files/mysql.server /etc/rc.d
Appliquez des droits en exécution :
# chmod 755 /etc/rc.d/mysql.server
Editez le fichier rc.local et ajoutez les lignes suivantes :
# Demarrage MySQL.
if [ -x /etc/rc.d/mysql.server ]; then
. /etc/rc.d/mysql.server start
fi



Copyright © 2001-2004 M.Geldenhuys - Tous droits réservés