web-dev-qa-db-fra.com

Comment quitter l'invite de commande MySQL?

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

C:\>mysql.exe
mysql>

Ensuite, je tape une commande invalide comme ceci:

mysql> /version
    ->

Et peu importe ce que je tape, je ne peux pas quitter le terminal/ligne de commande MySQL. Par exemple.:

  • exitname__

  • CtrlC

  • CtrlD

  • quitname__

  • Ctrl\

  • CtrlZ

  • byename__

Comment quitter le terminal MySQL vers le terminal par défaut?

34
Eric Leschinski

Pour ajouter à 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 vous le faites, vous devez d'abord le fermer avec un devis final.

28
Pacerier

Pourquoi ctrl-c ne quitte-t-il pas le mode de saisie mysql sous Windows?

Parce que vous avez dit à MySQL d'interpréter vos commandes de sortie comme une entrée valide.

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.

Donc, pour sortir du mode de saisie mysql, vous devrez suivre ces étapes:

  1. Sortez du mode double citation.
  2. Sortez du mode simple citation.
  3. Sortez du mode mysql.
  4. Quittez mysql vers le terminal par défaut.

Exemple le plus élémentaire:

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

C:\>

Vous n’avez jamais quitté le mode par défaut dans l’exemple ci-dessus pour 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 en mode guillemet double, aucune séquence d'échappement n'est respectée. Même Ctrl-C et Ctrl-D sont ignorés dans ces modes.

Dans lequel des 26 univers Ctrl-C n'arrête-t-il pas un programme quel que soit le mode? Nous pouvons ne jamais savoir. Bazinga.

19
Eric Leschinski

SQL prend en charge les requêtes saisies sur plusieurs lignes. La requête n'est exécutée que lorsque vous entrez un point-virgule ;. Vous devez également avoir mis fin aux chaînes de votre requête.

Méfiez-vous des requêtes copiées et collées avec des chaînes d'un package de traitement de texte - les guillemets peuvent avoir été remplacés par des "guillemets intelligents", ce qui gâchera votre requête.

Si vous avez entré une requête non terminée, celle-ci 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. La commande Invites change pour indiquer quelle entrée est nécessaire pour mettre fin à la requête. Par exemple, un devis ou un double devis peut être requis. C'est puissant et l'invite de commande est utile mais j'ai trouvé cela déroutant jusqu'à ce que je lise les réponses et les commentaires sur ce fil.

lisez le cahier des charges ici

L'invite de 'niveau supérieur' est:

mysql>

Si vous voyez cela, vous pouvez alors entrer une commande, terminez-la avec; et appuyez sur Entrée.

Si vous voyez une invite comme celle-ci:

'>
">
->

Ensuite, MySQL attend que vous terminiez une chaîne avec une citation ou une requête avec un point-virgule.

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

\c

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

exit
1
Little Brain

'\ q' fait le travail pour moi. Utiliser Ubuntu Terminal.

1
Daniyal Javaid

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

1
Akshay Chawda

Ok cela a fonctionné pour moi dans Ubuntu 16.04, tapez juste exit; (avec point-virgule):

mysql> exit;
0
evilReiko