2.4 Procédure de post-installation
2 Installer MySQL
Manuel de Référence MySQL 4.1 : Version Française
. Post-installation sous Windows ->Procédures de post-installation sous Unix . Création des premiers droits MySQL
|
2.4.2 Procédures de post-installation sous Unix
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 Lancer et arrêter automatiquement MYSQL .
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 Sécurisation des comptes MySQL initiaux .
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
:
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
Sécurisation des comptes MySQL initiaux . 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
Problèmes avec
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 Comment faire tourner MySQL en tant qu'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 Lancer et résoudre des problèmes avec 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 Lancer et résoudre des problèmes avec 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/ .
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 Sécurisation des comptes MySQL initiaux .
Sommaire :
|