| 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 : 
Sinon, vous devez lancer manuellement  
mysql_install_db
 .
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
 .
 
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
  :
 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
 .| 
shell> bin/mysql_install_db --user=mysqlshell> scripts/mysql_install_db --user=mysql
 | 
 
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 : 
Comme cela, vous pouvez éviter les problèmes de répétition manuelle entre
chaque machine.| 
shell> bin/mysql_install_db --user=mysqlshell> bin/mysql -u root < your_script_file
 | 
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
  : 
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.| 
shell> bin/mysqld_safe --user=mysql --skip-grant-tables &shell> bin/mysql mysql
 | 
Lancez le serveur  
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
 .| 
shell> bin/mysqld_safe --user=mysql &
 | 
 
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 : Si vous avez des problèmes au démarrage du serveur, voyez  Lancer et résoudre des problèmes avec MySQL .| 
mysqld: Can't find file: 'host.frm'
 | 
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 :  
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 versionshell> bin/mysqladmin variables
 | 
 Pour voir ce que vous pouvez faire d'autre avec  
mysqladmin
 ,
utilisez l'option  
--help
 .| 
shell> bin/mysqladmin versionmysqladmin  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
 | 
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 :   
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 .| 
shell> BINDIR/mysqld_safe --log &
 | 
Exécutez les tests simples pour vérifier que le serveur fonctionne.
Le résultat devrait être proche de celui-ci :  
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 :| 
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_% |      |
 +------+--------+------+
 | 
 Ces modules sont disponibles sur la bibliothèque  
CPAN
 http://www.cpan.org/ .
 Installer Perl sur Unix .| 
DBIDBD::mysql
 Data::Dumper
 Data::ShowTable
 | 
 
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 : 
 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.| 
shell> cd sql-benchshell> run-all-tests
 | 
 
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 :
 Les résultats attendus des tests sont disponibles dans le fichier
 
./tests/auto_increment.res
 .| 
shell> BINDIR/mysql -vvf test < ./tests/auto_increment.tst
 | 
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 : |