[+/-]
Une fois que vous avez installé MySQL sur Unix, vous devez initialiser les tables de droits, lancer le serveur, et vous assurer que tout fonctionne bien. Vous pouvez aussi configurer le démarrage et l'extinction automatique du serveur, lorsque votre serveur se lance et s'arrête.
Sous Unix, les tables de droits sont configurées avec le
programme mysql_install_db. Pour certaines
méthodes d'installation, ce programme est utilisé
automatiquement :
Si vous installez MySQL sous Linux avec un
RPM, le serveur RPM
exécute mysql_install_db.
Si vous installez MySQL sous Mac OS X en utilisant la
distribution PKG, l'installeur exécute
mysql_install_db.
Sinon, vous devez lancer manuellement
mysql_install_db.
La procédure suivante décrit comment initialiser les tables de droits (si cela n'a pas été fait), puis comment lancer le serveur. Vous trouverez aussi des suggestions de commandes pour tester l'accessibilité du serveur. Pour des informations sur le démarrage et l'extinction automatique du serveur, voyez Section 2.5.2.2, « Lancer et arrêter MySQL automatiquement ».
Une fois que vous avez exécuté la procédure, et que le
serveur fonctionne, vous devez assigner des mots de passe aux
comptes créés par mysql_install_db. Les
instructions pour faire cela
Section 2.5.3, « Création des premiers droits MySQL ».
Dans les exemples ici, le serveur fonctionne avec l'utilisateur
mysql. On suppose donc que ce compte existe.
Créez ce compte, s'il n'existe pas, ou bien utilisez le nom que
vous avez choisi.
Changez de dossier de travail, pour vous mettre à la racine
de l'installation MySQL, représentée ici par
BASEDIR :
shell> cd BASEDIR
BASEDIR vaut probablement
/usr/local/mysql ou
/usr/local. Les étapes suivantes
supposent que vous êtes dans ce dossier.
Si nécessaire, lancez le programme
mysql_install_db pour configurer les
tables de droits initiales, qui déterminent les
utilisateurs qui sont autorisées à se connecter au
serveur. Vous devez faire cela si vous avez installé le
programme avec une distribution qui ne lance pas ce
programme pour vous.
Typiquement, mysql_install_db doit être
utilisé uniquement à la première installation, et vous
pouvez éviter cette étape si vous faites une mise à jour.
Cependant, mysql_install_db n'écrase pas
les tables de droits : vous pouvez l'utiliser, en cas de
doute.
Pour initialiser les tables de droits, utilisez une des
commandes suivantes, en fonction de la localisation de
mysql_install_db dans le dossier
bin scripts :
shell>bin/mysql_install_db --user=mysqlshell>scripts/mysql_install_db --user=mysql
Le script mysql_install_db crée la base
mysql qui contient les tables de droits,
et la base test que vous pouvez utiliser
pour les tests avec MySQL. Ce script va aussi créer
l'utilisateur root et un compte anonyme.
Ces deux comptes sont créés sans mot de passe. Une
description des droits initiaux sont présentés dans la
section Section 2.5.3, « Création des premiers droits MySQL ». Le script
mysqld_safe lance le serveur
mysqld. Avant la version 4.0, utilisez
safe_mysqld au lieu de
mysqld_safe.
Il est important de vous assurer que les dossiers et les
fichiers appartiennent au compte mysql
pour que le serveur puisse lire et écrire dedans. Pour
cela, l'option --user doit être utilisée
comme présenté si vous utilisez
mysql_install_db comme
root. Sinon, il est recommandé
d'exécuter le script lorsque vous êtes connectés en tant
que mysql : dans ce cas, vous pouvez
omettre l'option --user.
mysql_install_db crée de nombreuses
tables dans la base mysql :
user, db,
host, tables_priv,
columns_priv, func, et
même d'autres, en fonction des versions de MySQL.
Si vous ne voulez pas de la base test,
vous pouvez la supprimer avec mysqladmin -u root
drop test au redémarrage du serveur.
Si vous avez des problèmes avec
mysql_install_db, voyez
Section 2.5.2.1, « Problèmes d'exécution de mysql_install_db ».
Il y a d'autres alternatives pour lancer
mysql_install_db tel que fournit par la
distribution MySQL :
Si vous voulez que les droits initiaux soient
différents des valeurs par défaut, vous pouvez
modifier le script mysql_install_db
avant de l'exécuter. Cependant, une technique
préférable est d'utiliser GRANT et
REVOKE pour changer les droits après
avoir configuré les tables de droits. En d'autres
termes, vous pouvez lancer
mysql_install_db, puis utiliser
mysql -u root mysql pour vous
connecter au serveur en tant que root
MySQL, pour émettre les commandes
GRANT et REVOKE.
Si vous voulez installer MySQL sur de nombreuses
machines avec les mêmes droits, vous pouvez mettre les
commandes GRANT et
REVOKE dans un fichier de script, et
exécuter ce script avec mysql après
avoir utilisé mysql_install_db. Par
exemple :
shell>bin/mysql_install_db --user=mysqlshell>bin/mysql -u root < your_script_file
Comme cela, vous pouvez éviter les problèmes de répétition manuelle entre chaque machine.
Il est possible de re-créer entièrement les tables de
droits après les avoir créées. Vous pouvez le faire
si vous apprenez comment utiliser
GRANT et REVOKE et
que vous avez fait tellement de modifications après
mysql_install_db que vous voulez
recommencer à zéro.
Pour re-créer les tables de droits, supprimez les
fichiers .frm,
.MYI et .MYD
dans le dossier contenant les tables
mysql. C'est le dossier appelé
mysql dans le dossier de données,
qui est listé dans le dossier
datadir lorsque vous utilisez la
commande mysqld --help. Puis,
utilisez à nouveau le script
mysql_install_db.
Note : pour les
versions MySQL antérieure à la version 3.22.10, vous
ne devez pas supprimer les fichiers
.frm. Si vous les supprimez
accidentellement, essayez de les retrouver et de les
remettre dans le dossier mysql
depuis votre distribution MySQL, avant d'utiliser
mysql_install_db.
Vous pouvez lancer mysqld
manuellement en utilisant l'option
--skip-grant-tables et en ajoutant les
droits mysql :
shell>bin/mysqld_safe --user=mysql --skip-grant-tables &shell>bin/mysql mysql
Depuis mysql, exécutez manuellement
les commandes SQL contenues dans le script
mysql_install_db. Assurez vous que
vous utilisez mysqladmin
flush-privileges ou mysqladmin
reload après, pour dire au serveur de relire
les tables de droits.
Notez que si vous n'utilisez pas
mysql_install_db, vous devez remplir
les tables manuellement, et en plus, vous devez
commencer par les créer.
Lancez le serveur MySQL :
shell> bin/mysqld_safe --user=mysql &
Pour les versions de MySQL antérieure à 4.0, remplacez
bin/safe_mysqld par
bin/mysqld_safe dans cette commande.
Il est important de vous assurez que le dossier de base de
données et les fichiers de mysql sont
accessibles, pour que le serveur puisse y lire et écrire.
Pour cela, l'option --user peut être
utilisée avec mysql_install_db si vous
l'exécutez en tant que root. Sinon, vous
devez exécuter le script lorsque vous êtes identifié
comme mysql, auquel cas, vous pouvez
omettre l'option --user.
D'autres instructions pour faire fonctionner MySQL en tant qu'utilisateur sans droits sont données dans la section Section A.3.2, « Comment exécuter MySQL comme un utilisateur normal ».
Si vous n'avez pas créé les tables de droits, l'erreur suivante sera inscrite dans le fichier de log d'erreur de votre serveur :
mysqld: Can't find file: 'host.frm'
Si vous avez des problèmes au démarrage du serveur, voyez Section 2.5.2.3, « Problèmes de démarrage du serveur MySQL ».
Utilisez mysqladmin pour vérifier que le
serveur fonctionne. La commande suivante vous permet de
faire un test simple pour vérifier que le serveur est actif
et qu'il répond aux connexions :
shell>bin/mysqladmin versionshell>bin/mysqladmin variables
Le résultat de mysqladmin version varie
légèrement, suivant votre plates-formes et votre version
de MySQL, mais il doit être proche de ceci :
shell> bin/mysqladmin version
mysqladmin Ver 8.40 Distrib 4.0.18, for linux on i586
Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL license
Server version 4.0.18-log
Protocol version 10
Connection Localhost via Unix socket
TCP port 3306
UNIX socket /tmp/mysql.sock
Uptime: 16 sec
Threads: 1 Questions: 9 Slow queries: 0
Opens: 7 Flush tables: 2 Open tables: 0
Queries per second avg: 0.000
Memory in use: 132K Max memory used: 16773K
Pour voir ce que vous pouvez faire d'autre avec
mysqladmin, utilisez l'option
--help.
Vérifiez que vous pouvez éteindre le serveur :
shell> BINDIR/mysqladmin -u root shutdown
Vérifiez que vous pouvez relancer le serveur. Pour cela,
utilisez mysqld_safe ou
mysqld directement. Par exemple :
shell> BINDIR/mysqld_safe --log &
Si mysqld_safe échoue, essayez de
l'exécuter directement depuis le dossier d'installation
MySQL (si vous n'y êtes pas déjà). Si cela ne fonctionne
toujours pas, voyez Section 2.5.2.3, « Problèmes de démarrage du serveur MySQL ».
Exécutez les tests simples pour vérifier que le serveur fonctionne. Le résultat devrait être proche de celui-ci :
shell>BINDIR/mysqlshow+-----------+ | Databases | +-----------+ | mysql | +-----------+ shell>BINDIR/mysqlshow mysqlDatabase: mysql +--------------+ | Tables | +--------------+ | columns_priv | | db | | func | | host | | tables_priv | | user | +--------------+ shell>BINDIR/mysql -e "SELECT host,db,user FROM db" mysql+------+--------+------+ | host | db | user | +------+--------+------+ | % | test | | | % | test_% | | +------+--------+------+
Il y a aussi une suite de tests dans le dossier
sql-bench (sous le dossier
d'installation MySQL) que vous pouvez utiliser pour comparer
les performances de MySQL sur différentes plates-formes. La
suite de tests utilise le module Perl DBI
pour assurer une interface avec les autres bases de
données. Les modules Perl suivants sont aussi nécessaires
pour exécuter la suite de tests :
DBI DBD::mysql Data::Dumper Data::ShowTable
Ces modules sont disponibles sur la bibliothèque
CPAN
http://www.cpan.org/.
See Section 2.9.1, « Installer Perl sur Unix ».
Le dossier sql-bench/Results contient
des résultats de tests sur différentes plates-formes et
bases. Pour lancer tous les tests, exécutez ces
commandes :
shell>cd sql-benchshell>run-all-tests
Si vous n'avez pas de dossier
sql-bench, vous avez probablement
installé MySQL avec un fichier RPM,
différent du RPM source. Le
RPM source inclut le dossier
sql-bench) Dans ce as, vous devez
d'abord installer la suite de tests avant de l'utiliser.
Depuis MySQL version 3.22, il y a des fichiers de tests
RPM appelé
mysql-bench-VERSION-i386.rpm, qui
contiennent le code et les données.
Si vous avec une distribution source, il y a aussi des tests
dans le sous-dossier tests. Par
exemple, pour lancer
auto_increment.tst, faîtes :
shell> BINDIR/mysql -vvf test < ./tests/auto_increment.tst
Les résultats attendus des tests sont disponibles dans le
fichier ./tests/auto_increment.res.
A ce point, vous devez avoir un serveur fonctionnel. Cependant, les comptes initiaux n'ont pas de mot de passe : il est recommandé de leur assigner des mots de passe en suivant les instructions de la section Section 2.5.3, « Création des premiers droits MySQL ».
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.
