myisampack , le générateur de tables MySQL compressées en lecture seule
<<<
mysql , l'outil en ligne de commande mysqladmin , administration d'un serveur MySQL
>>>

8 MySQL Scripts clients et utilitaires
 Manuel de Référence MySQL 4.1 : Version Française

Présentation des scripts serveurs et utilitaires
myisampack , le générateur de tables MySQL compressées en lecture seule
->mysql , l'outil en ligne de commande
mysqladmin , administration d'un serveur MySQL
mysqlbinlog , Exécuter des requêtes dans le log binaire
mysqlcc , MySQL Control Center
Utiliser mysqlcheck pour l'entretien et la réparation
mysqldump , sauvegarde des structures de tables et les données
mysqlhotcopy , copier les bases et tables MySQL
mysqlimport , importer des données depuis des fichiers texte
Afficher les bases, tables et colonnes
perror , expliquer les codes d'erreurs
L'utilitaire de remplacement de chaînes replace

8.3 mysql , l'outil en ligne de commande

mysql est un simple script SQL (qui exploite GNU readline ). Il supporte une utilisation interactive et non-interactive. Lorsqu'il est utilisé interactivement, les résultats des requêtes sont présentés sous la forme d'une table au format ASCII. Lorsqu'il est utilisé non-interactivement, par exemple, comme filtre, le résultat est fourni au format de liste avec séparation par tabulation (le format d'affichage peut être modifié en utilisant les options de ligne de commande).

Si vous avez des problèmes liés à des insuffisances de mémoire avec le client, utilisez l'option --quick ! Cela force mysql à utiliser mysql_use_result() plutôt que mysql_store_result() pour lire les résultats.

Utiliser mysql est très simple. Il suffit de le démarrer comme ceci :

shell> mysql db_name
ou :

shell> mysql --user=user_name --password=your_password db_name
Tapez une commande SQL, puis terminez-la avec ';' , '\g' ou '\G' , et finissez avec entrée.

Vous pouvez exécuter un script avec :


shell> mysql db_name < script.sql > output.tab
mysql supporte les options suivantes :
    --help , -?
    Affiche cette aide et quitte.
    --batch , _B
    Affiche les résultats avec une tabulation comme résultat, et chaque ligne avec une nouvelle ligne. N'utilise pas l'historique.
    --character-sets-dir=path
    Le dossier où les jeux de caractères sont créés. Le jeu de caractères utilisé pour les données et le stockage .
    --compress , _C
    Utilise la compression avec le protocole client / serveur.
    --database=db_name , -D db_name
    La base de données à utiliser. C'est particulièrement pratique dans le fichier d'options my.cnf .
    --debug[=debug_options] , -# [debug_options]
    Génère un log de débogage. La chaîne debug_options vaut souvent 'd:t:o,file_name' . Par défaut, la valeur est 'd:t:o,/tmp/mysql.trace' .
    --debug-info , -T
    Affiche des informations de débogage lorsque le programme se termine.
    --default-character-set=charset
    Configure le jeu de caractères par défaut. Le jeu de caractères utilisé pour les données et le stockage .

    --execute=statement , -e statement
    Exécute une commande et quitte. Le résultat est au format de l'option --batch .

    --force , f
    Continue même si vous recevez une erreur SQL.
    --host=host_name , -h host_name
    Connexion avec l'hôte indiqué.
    --html , H
    Produit un résultat au format HTML.
    --ignore-space , i
    Ignore les espaces après les noms de fonctions. L'effet de cette commande est décrit dans la discussion sur IGNORE_SPACE de la section Le mode SQL du serveur .
    --local-infile[={0|1}]
    Active ou désactive la possibilité d'utiliser la commande LOCAL pour LOAD DATA INFILE . Sans valeur, cette option active LOCAL . Elle peut être configuré avec --local-infile=0 ou --local-infile=1 pour explicitement activer ou désactiver LOCAL . Activer LOCAL n'a pas d'effet si le serveur ne le supporte pas de son coté.
    --named-commands , -G
    Les commandes nommées sont activées . Utilisez la forme \* uniquement, ou utilisez les commandes nommées au début d'une ligne se terminant par un point-virgule ( ';' ). Depuis la version 10.9, le client démarre avec cette option activée par défaut. Avec l'option -g , le format long des commandes va continuer à fonctionner.
    --no-auto-rehash , -A
    Pas de rehashage automatique. Cette option fait que mysql se lance plus rapidement, mais vous devez utiliser la commande rehash si vous voulez utiliser la completion de nom de tables.
    --no-beep , -b
    Ne fait pas de bip, lorsqu'une erreur survient.
    --no-named-commands , -g
    Les commandes nommées sont désactivées. Utilisez uniquement la forme \* ou bien utilisez les commandes nommées en début de ligne, et terminez la avec un point-virgule ( ';' ). Depuis MySQL 3.23.22, mysql démarre avec cette option activée par défaut! Cependant, même si cette avec cette option, les formats de commandes longues fonctionneront sur la première ligne.
    --no-pager
    Désactive le système de page, et affiche directement dans la sortie standard. Plus de détails dans la section Commandes mysql .
    --no-tee
    Désactive le fichier de sortie. Voyez l'aide interactive (\h). Plus de détails dans la section Commandes mysql .
    --one-database , O
    Ne modifie que la base par défaut. C'est pratique pour éviter les modifications dans les autres bases dans le fichier de log.
    --pager[=command]
    Type d'affichage. Par défaut, la variable d'environnement ENV vaut PAGER . Les pagineurs valides sont less , more , cat [> filename] , etc. Voyez l'aide interactive ( \h ). Cette option n'est pas fonctionnelle en mode batch. Les pagineurs ne fonctionnent qu'avec Unix. Plus de détails dans la section Commandes mysql .
    --password[=password] , -p[password]
    Le mot de passe utilisé lors de la connexion sur le serveur. S'il n'est pas donné en ligne de commande, il sera demandé interactivement. Notez que si vous utilisez la forme courte -p , vous ne devez pas laisser d'espace entre l'option et le mot de passe.
    --port=port_num , -P port_num
    Le numéro de port TCP/IP pour la connexion.
    --prompt=format_str
    Modifie le format de l'invite de commandes ( prompt ). Par défaut, c'est mysql> . Les séquences spéciales sont présentées dans la section Commandes mysql .
    --protocol={TCP | SOCKET | PIPE | MEMORY}
    Spécifie le protocole de connexion à utiliser. Nouveau en MySQL version 4.1.
    --quick , -q
    Ne met pas en cache le résultat, et l'affiche ligne par ligne. C'est plus lent pour le serveur, si le résultat est interrompu. N'utilise pas le fichier d'historique.
    --raw , -r
    Ecrit les valeurs des colonnes sans les conversions de protections. Utilisé en mode --batch
    --reconnect
    Si la connexion est perdue, essaie de se reconnecter automatiquement au serveur, juste une fois. Pour supprimer la reconnexion automatique, utilisez --skip-reconnect . Nouveau en MySQL 4.1.0.
    --safe-updates , --i-am-a-dummy , -U
    N'autorise que les commandes UPDATE et DELETE qui utilisent des clés. Voir plus bas pour des informations sur cette option. Vous pouvez annuler cette option si vous l'avez dans le fichier d'option my.cnf en utilisant la syntaxe --safe-updates . Voyez la section Conseils mysql pour plus d'informations sur cette option.
    --silent , -s
    Mode très silencieux.
    ----skip-column-names , -N
    N'écrit pas les noms de colonnes dans les résultats.
    --skip-line-numbers , -L
    N'écrit pas les numéros de lignes dans les erreurs. Très pratique lorsque vous voulez comparer des résultats qui incluent des messages d'erreurs.
    --socket=path , -S path
    Le fichier de socket à utiliser pour la connexion.
    --table , -t
    Affichage au format de table. C'est le mode par défaut pour le mode non-batch.
    --tee=file_name
    Ajoute tout dans le fichier de sortie. Voyez l'aide interactive (\h). Ne fonctionne pas en mode batch. Cette option est détaillée dans Commandes mysql .
    --unbuffered , -n
    Vide le buffer de requête après chaque requête.
    --user=user_name , -u user_name
    Nom d'utilisateur pour la connexion, si ce n'est pas l'utilisateur Unix courant.
    --verbose , -v
    Affichage plus détaillé ( -v -v -v indique le format d'affichage de table).
    --version , -V
    Affiche la version et quitte.
    --vertical , -E
    Affiche le résultat d'une requête verticalement. Sans cette option, vous pouvez aussi obtenir ce format en terminant votre requête avec \G .
    --wait , -w
    Attend et retente si la connexion s'interrompt, au lieu de quitter.
    --xml , -X
    Affiche le résultat au format XML.
Vous pouvez aussi spécifier les variables suivantes avec la syntaxe --var=option :

    connect_timeout
    Nombre de secondes avant que la connexion n'expire. Valeur par défaut : 0.
    max_allowed_packet
    Taille maximale du paquet de communication avec le serveur. Valeur par défaut : 16777216.
    max_join_size
    Limite automatique pour les commandes de jointure avec l'option --i-am-a-dummy . Valeur par défaut : 1 000 000 (un million).
    net_buffer_length
    Buffer pour les communications TCP/IP et socket. Valeur par défaut : 16 ko.
    select_limit
    Limite automatique pour les commandes SELECT avec l'option --i-am-a-dummy Valeur par défaut : 1000.
Il est aussi possible de configurer les variables en utilisant --set-variable=var_name=value ou la syntaxe -O var_name=value . Cependant, cette syntaxe est obsolète depuis MySQL 4.0.

Sous Unix, le client mysql écrit l'historique des requêtes dans un fichier. Par défaut, le fichier de requêtes s'appelle .mysql_history , et il est créé dans votre dossier racine. Pour spécifier un fichier différent, modifiez la variable d'environnement MYSQL_HISTFILE .

Si vous ne voulez pas entretenir un fichier d'historiques, supprimez .mysql_history s'il existe, puis utiliser l'une des techniques suivantes :
  • Donnez à MYSQL_HISTFILE la valeur de /dev/null . Pour que cela soit pris en compte à chaque redémarrage, ajoutez cette ligne à votre script de démarrage.
  • Faites un lien symbolique depuis .mysql_histfile vers /dev/null :
    
    shell> ln -s /dev/null $HOME/.mysql_history
    
    Il suffira de faire cela une seule fois.

Sommaire :

<< mysql , l'outil en ligne de commande >>
myisampack , le générateur de tables MySQL compressées en lecture seule MySQL Scripts clients et utilitaires mysqladmin , administration d'un serveur MySQL