50 votes

Comment quitter l'invite de commande MySQL ?

J'ai installé MySQL. Maintenant, je suis coincé dans l'invite de commande de MySQL. J'ai lancé MySQL comme suit :

C:\>mysql.exe
mysql>

Ensuite, je tape une commande invalide comme celle-ci :

mysql> /version
    ->

Et quoi que je tape, je ne peux pas sortir de la ligne de commande / du terminal MySQL. Par exemple :

  • exit

  • CtrlC

  • CtrlD

  • quit

  • Ctrl\

  • CtrlZ

  • bye

Comment quitter le terminal MySQL pour revenir au terminal par défaut ?

44voto

Pacerier Points 25390

Pour compléter l'autre réponse, vous pouvez simplement mettre fin à la requête invalide actuelle en utilisant un point-virgule :

mysql> /version
    -> ;
ERROR 1064 (42000): You have an error in your SQL syntax.........
mysql> exit
Bye

c:\mysql\bin>

Ou en utilisant \G (qui est censé faire en sorte que les lignes s'affichent verticalement) :

mysql> /version
    -> ;
ERROR 1064 (42000): You have an error in your SQL syntax.........
mysql> exit
Bye

c:\mysql\bin>

Bien entendu, les deux options supposent que vous n'avez pas de devis d'ouverture. Si c'est le cas, vous devez d'abord le fermer par un guillemet de fin.

23voto

Eric Leschinski Points 6388

Pourquoi la touche ctrl-c ne permet-elle pas de sortir du mode d'entrée de mysql sous Windows ?

Parce que vous avez demandé à MySQL d'interpréter vos commandes de sortie comme des entrées valides.

Ce qui rend le terminal MySQL difficile à comprendre, c'est qu'il existe différents modes pour les guillemets simples, les guillemets doubles et le mode normal.

Pour sortir du mode d'entrée de mysql, vous devez donc suivre les étapes suivantes :

  1. Sortez du mode "guillemets".
  2. Sortez du mode "citation unique".
  3. Sortir du mode mysql.
  4. Quittez mysql pour revenir au terminal par défaut.

Exemple le plus simple :

mysql> /version
    ->
    ->
    ->
    -> \c
mysql> exit
Bye

C:\>

Vous n'avez jamais quitté le mode par défaut dans l'exemple ci-dessus, de sorte que les commandes de sortie fonctionnent correctement.

Exemple 2 (c'est ce qui vous fait trébucher).

mysql> hello
    ->
    -> look dash is on the left"
    "> In doublequote mode now, because doublequote above
    "> adding another doublequote breaks you out: "
    -> look a single quote ' here
    '> in single quote mode now.
    '> get out, in, then out again with three singlequotes: '''
    -> now it will listen to your escape code: \c
mysql> exit
Bye

C:\>

Lorsque vous êtes en mode guillemet simple ou guillemet double, aucune séquence d'échappement n'est respectée. Même les Ctrl-C y Ctrl-D sont ignorés dans ces modes.

Dans lequel des 26 univers la touche Ctrl-C ne permet-elle pas d'arrêter un programme, quel que soit le mode ? Nous ne le saurons peut-être jamais. Bazinga.

7voto

Daniyal Javaid Points 171

\q fait l'affaire pour moi. J'utilise le terminal Ubuntu.

1voto

Kiran Points 421

Vous pouvez essayer de vous échapper en utilisant Ctrl + Shift + D

1voto

Amit Points 9307

SQL prend en charge les requêtes saisies sur plusieurs lignes. Ce n'est que lorsque vous saisissez un point-virgule ; la requête sera exécutée. Vous devez également avoir mis fin à toutes les chaînes de caractères dans votre requête.

Attention aux copier-coller de requêtes avec des chaînes de caractères provenant d'un logiciel de traitement de texte - les guillemets peuvent avoir été remplacés par des "guillemets intelligents", ce qui perturbera votre requête.

Si vous avez saisi une requête non terminée, elle ne s'exécute pas, et c'est pourquoi taper exit ne fonctionne pas - MySQL pense que vous êtes toujours au milieu d'une requête. L'invite de commande change pour montrer ce qui est nécessaire pour terminer la requête. Par exemple, un guillemet ou un double guillemet peut être nécessaire. C'est puissant et l'invite de commande est utile, mais j'ai trouvé cela confus jusqu'à ce que je lise les réponses et les commentaires sur ce fil de discussion.

lire le cahier des charges ici

L'invite "de haut niveau" est la suivante :

mysql>

Si vous voyez cela, vous pouvez entrer une commande, la terminer par ; et appuyer sur la touche Entrée.

Si vous voyez une invite comme celle-ci :

'>
">
->

MySQL attend alors que vous terminiez une chaîne de caractères par un guillemet ou une requête par un point-virgule.

Voici comment demander à MySQL d'annuler votre requête non terminée et de vous ramener à l'invite principale :

\c

Je pense que c'est plus sûr que de terminer et d'exécuter votre requête involontaire. Après cela, vous devriez revenir à l'invite > et vous pouvez quitter avec :

exit

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X