Post-installation sous Windows
<<<
Procédures de post-installation sous Unix Création des premiers droits MySQL
>>>

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 :
    
    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 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 :

<< Procédures de post-installation sous Unix >>
Post-installation sous Windows Procédure de post-installation Création des premiers droits MySQL