Cours PHP-MySQL

Partie 3 : MySQL en ligne de commandes

Matthias Meusburger
www.meusburger.net/matthias


 

  1. ligne de commande?
    1. Les options
    2. Les arguments
    3. Les opérateurs de redirection d'entrée-sortie

  2. mysqld : le serveur MySQL
    1. Syntaxe
    2. Options
    3. Options spéciales pour NT et Win32
    4. Notes

  3. mysql : le client MySQL
    1. Syntaxe
    2. Options
    3. Exécuter un fichier de commandes

  4. mysqladmin : l'outil d'administration de MySQL
    1. Syntaxe
    2. Commandes

  5. mysqldump : l'outil de sauvegarde de MySQL
    1. Syntaxe
    2. Options
    3. Options de formattage
    4. Sauvegarder dans un fichier



MySQL vient du monde Linux. C'est pour cela qu'il ne dispose pas d'interface graphique propre, mais d'outils utilisables en ligne de commande. Nous allons étudier quelques-uns de ces outils, en présentant quelques-unes de leurs fonctionnalités.
Cependant, il convient avant tout de présenter les notions de base du fonctionnement des programmes en ligne de commande.

  1. Ligne de commande?

    Un programme en ligne de commande est un programme qui ne dispose pas d'interface graphique graphique propre. Il est lancé via un terminal (l'invite de commandes MS-DOS sous Windows ou un xterm sous Linux), en l'appelant par son nom.
    Exemple :

    c:\>programme

    va lancer en ligne de commande MS-DOS le programme appelé "programme".

    Les programmes en lignes de commandes admettent souvent des paramètres qui conditionnent leur éxecution : les options et les arguments. Ceux-ci peuvent être facultatifs :

    programme [options] [arguments]


    1. Les options
      Une option est toujours précédée d'un tiret "-" ou d'un double-tiret "--". En général chaque option existe sous deux formes : une courte, qui se résume à une lettre, et une longue, qui est le mot complet. Quand on précise l'option sous sa forme courte, on la fait précéder d'un tiret, et quand on la précise sous sa forme longue, on utilise le double-tiret.
      Exemple :

      programme -?

      ou

      programme --help

      Les options peuvent jouer le rôle de commutateur ou servir à préciser une valeur. Dans l'exemple précédent, l'option -? ou --help jouait le rôle d'un commutateur, c'est-à-dire qu'on a activé l'option d'aide sans avoir à rien préciser de plus. Par contre, on peut avoir à préciser une valeur :

      programme -m monmessage

      Ici, on précise que l'option "-m" a pour valeur "monmessage".

      Quand on précise une valeur pour une option exprimée sous sa forme longue, il est souvent d'usage d'utiliser le signe égal entre l'option et sa valeur.

      programme --message=monmessage

      Note :
      MySQL utilise le tiret ou le double-tiret car il vient de Linux. Cependant, pour la majorité des programmes MS-DOS, le caractère précédant une option est le slash "/".


    2. Les arguments
      Les arguments ne requièrent aucune syntaxe particulière, bien que leur ordre soit parfois déterminant.
      Par exemple, sous Linux, la commande mv permet, entre autres, de renommer un fichier. Elle accepte deux arguments : le nom actuel du fichier et le nouveau nom qu'on souhaite lui donner :

      mv toto.txt titi.txt



    3. Les opérateurs de redirection d'entrée-sortie
      Par défaut, la plupart des programmes en ligne de commande acceptent le clavier comme entrée standard et l'écran comme sortie standard.
      Il est toutefois possible de changer ceci grâce aux opérateurs de redirection d'entrée-sortie.

      L'opérateur de redirection de sortie standard : ">"
      Si on veut enregistrer le résultat d'une commande dans un fichier plutôt que de le voir s'afficher à l'écran, on peut procéder comme ceci :

      programme [options] [arguments] > nom_du_fichier.txt

      L'opérateur de redirection d'entrée standard : "<"
      A l'inverse, si un programme attend des informations lors de son exécution, on peut lui demander de lire ces informations dans un fichier plutôt que d'attendre qu'on les tape au clavier.

      programme [options] [arguments] < nom_du_fichier.txt






  2. mysqld : le serveur MySQL

    C'est le programme qui lance le serveur MySQL.

    1. Syntaxe :

      mysqld [options]

      Si mysqld est lancé sans options, il prendra comme nom d'utilisateur MySQL le nom d'utilisateur du système. La plupart du temps il est donc nécessaire de préciser un nom d'utilisateur et un mot de passe :

      mysqld -u utilisateur -pmot_de_passe.

      -u donne le nom d'utilisateur et -p donne le mot de passe. On notera qu'exceptionnelement pour le mot de passe, la valeur de l'option est accollée à son nom : on écrit -pmot_de_passe et non -p mot_de_passe.


    2. Options :

      -u nom
      ou --user=nom
      indique à MySQL votre nom d'utilisateur
      -pmot_de_passe
      ou --password=mot_de_passe
      indique à MySQL votre mot de passe.
      Attention, exceptionnelement le valeur de l'option est collée à son nom.
      -h vers/un/répertoire
      ou --datadir=vers/un/répertoire
      indique à MySQL le répertoire où sont stockées les bases de données.
      -L langue
      ou --language=langue
      Les messages d'erreur MySQL seront affichés dans la langue donnée pour les clients.
      Attention "langue" est le nom de la langue en anglais!
      -P port
      ou --port=port
      Le serveur utilise ce numéro de port pour les connexions des clients.
      -Sg
      ou --skip-grant-tables
      Lance le serveur sans charger les tables de droits des utilisateurs.
      Attention, lancer le serveur mysql avec cette option donne tous les droits à tous le monde!
      --skip-networking Ne permet plus de se connecter avec TCP/IP.
      -V
      ou --version
      Affiche juste le numéro de version du serveur sans le lancer.
      -?
      ou --help
      La liste complète des options.


    3. Options spéciales pour NT et Win32 :

      --install Installe le serveur MySQL comme un service système.
      --remove Enlève le serveur MySQL de la liste des services systèmes.


    4. Notes :

      Sous Linux, il faut être root pour pouvoir exécuter mysqld.

      Il existe mysqld-nt, qui est une version de mysqld optimisée pour les plateformes NT.




  3. mysql : le client MySQL


    1. Syntaxe :


    2. mysql [options] [nom_de_base]

      Les paramètres de nom d'utilisateur de mot de passe, d'aide et de numéro de version sont les mêmes que pour mysqld.


    3. Options :

    4. -h machine
      ou --host=machine
      Précise le nom de machine ou l'adresse IP de la machine où se trouve le serveur MySQL.
      -P port
      ou --port=port
      Indique le numéro de port sur lequel le serveur MySQL accepte les connexions.
      -D base
      ou --database=base
      Sélectionne une base de données.
      -H
      ou --html
      Produit du HTML sur la sortie standard.


    5. Exécuter un fichier de commande :


    6. On peut passer des informations au client MySQL grâce à l'opérateur de redirection de l'entrée standard "<".
      Ainsi, un fichier contenant une suite d'instructions SQL peut être éxecuté facilement grâce à la commande :

      mysql < monfichier

      Attention, si les instructions du fichier concernent une base de données particulière et que cette base n'est pas sélectionnée dans le fichier, il faut penser à utiliser l'option -D :

      mysql -D mabase < creerMaBase.sql

      Cette manipulation fonctionne aussi bien sous Linux que sous Windows.



  4. mysqladmin : l'outil d'administration de MySQL


    1. Syntaxe :

      mysqadmin [options] commandes

      Les options de connexion sont les mêmes que pour mysql : nom d'utilisateur, mot de passe, machine, et port.
      Les options d'aide et de numéro de version sont également les mêmes.


    2. Commandes (arguments) :

      flush-privileges Recharge les tables des droits des utilisateurs. Les tables de droits des utilisateurs ont besoin d'être rechargées si des modifications ont été apportées directement à ces tables sans passer par les commandes MySQL concernant les droits.
      ping Iindique si le serveur mysql est toujours en execution.
      processlist La liste des processus en cours sur le serveur.
      shutdown Stoppe le serveur MySQL.
      status Le serveur envoie des informations sur lui-même.



  5. mysqldump : l'outil de sauvegarde de MySQL

    Cette utilitaire permet de sauvegarder la structure et/ou les données de bases MySQL.

    1. Syntaxe :

      mysqldump [options] nom_de_base [noms_de_tables] sauvegarde une base complète ou juste certaines tables.
      mysqldump [options] --databases nom_de_base [noms_de_bases] sauvegarde plusieurs bases
      mysqldump [options] --all-databases sauvegarde toutes les bases


    2. Options :

      Les options de connexion sont les mêmes que pour mysql : nom d'utilisateur, mot de passe, machine, et port.
      Les options d'aide et de numéro de version sont également les mêmes.

      --add-drop-tables Lorsque la sauvegarde créée sera restaurée, elle pourra effacer des tables existantes portant le même nom que les tables à restaurer sans demander de confirmation.
      -r fichier
      ou --result-file=fichier
      Le nom du fichier de sortie. Cette option doit être utilisée dans les environnements windows à la place de l'opérateur de redirection de sortie standard ">" pour éviter que les fins de lignes "\n" ne soient transformées en "\n\r".
      -d ou
      --no-data
      Sauvegarde uniquement la structure des objets.
      -n ou
      --no-create-info
      Sauvegarde uniquement les données des objets.


    3. Options de formattage :

      Ces options sont facultatives. Si elles ne sont pas précisées, des valeurs par défaut seront utilisées.

      --fields-terminated-by=séparateur caractère ou suite de caractères utilisés pour séparer les champs : "," ou ";"...
      --fields-enclosed-by=séparateur caractère ou suite de caractères utilisés pour entourer les champs : " " " ou " ' "...
      --fields-optionally-enclosed-by=séparateur caractère ou suite de caractères utilisés pour entourer uniquement les champs de type texte (char, varchar...).
      --lines-terminated-by=fin_de_ligne caractère ou suite de caractères utilisés pour marquer la fin de ligne : "\n" ou "\n\r"...


    4. Sauvegarder dans un fichier :

      Par défaut, la sauvegarde produite est affichée sur la sortie standard. Il faut donc utiliser l'opérateur de redirection de sortie standard ">" pour sauvegarder dans un fichier.

      mysqldump > fichier

      Attention toutefois à utiliser de préférence l'option -r ou --result-file dans les environnements windows.