[+/-]
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=mysql
shell>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=mysql
shell>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 version
shell>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 mysql
Database: 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-bench
shell>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.