2013-08-08 21:39:05 +0000 2013-08-08 21:39:05 +0000
39
39
Advertisement

Comment quitter l'invite de commande MySQL ?

Advertisement

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

C:\>mysql.exe
mysql>

Puis je tape une commande invalide comme celle-ci :

mysql> /version
    ->

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

  • exit

  • CtrlC

  • CtrlD

  • quit

  • Ctrl\

  • CtrlZ

  • bye

Comment puis-je quitter le terminal MySQL vers le terminal par défaut ?

Advertisement

Réponses (5)

31
31
31
2015-01-10 14:13:49 +0000

Pour compléter l'autre réponse, vous pouvez simplement terminer 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 afficher les lignes verticalement) :

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

c:\mysql\bin>

Bien sûr, les deux options supposent que vous n'avez pas de guillemet ouvrant. Si c'est le cas, vous devez d'abord la fermer avec une citation finale.

20
20
20
2013-08-08 21:40:45 +0000

Pourquoi ctrl-c ne quitte-t-il pas le mode de saisie mysql dans 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 la saisie simple, la saisie double et le mode normal.

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

  1. Sortir du mode double guillemet.
  2. Sortir du mode de citation simple.
  3. Sortir du mode mysql.
  4. Sortir de mysql pour revenir au terminal par défaut.

Exemple le plus basique:

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

C:\>

Vous n'avez jamais quitté le mode par défaut dans l'exemple ci-dessus, donc 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:\>

Tant que vous êtes en mode simple citation ou double citation, 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 pas un programme quel que soit le mode ? Nous ne le saurons peut-être jamais. Bazinga.

1
Advertisement
1
1
2018-12-18 12:37:01 +0000

SQL prend en charge les requêtes saisies sur plusieurs lignes. La requête ne sera exécutée que si vous saisissez un point-virgule ;. Vous devez également avoir terminé toutes les chaînes de caractères de votre requête.

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

Si vous avez saisi une requête non terminée, elle ne s'exécute pas, et c'est pourquoi la sortie de la saisie ne fonctionne pas - MySQL pense que vous êtes toujours au milieu d'une requête. L'invite de commande change pour montrer quelle entrée est nécessaire pour terminer la requête. Par exemple, une citation ou une double citation peut être nécessaire. 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 de discussion. lire la spécification ici

L'invite de commande de “niveau supérieur” est :

mysql>

Si vous voyez ceci, alors vous pouvez entrer une commande, la terminer par ; et appuyer sur entrée.

Si vous voyez une invite comme celle-ci :

'>
">
->

Alors MySQL attend que vous terminiez une chaîne par une citation ou une requête par un point-virgule.

Voici comment dire à MySQL d'annuler votre requête non terminée et de vous renvoyer à 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 être de retour à l'invite > et vous pouvez quitter avec :

exit
1
1
1
2019-01-31 16:42:07 +0000

\q fait le travail pour moi. En utilisant le terminal Ubuntu.

0
Advertisement
0
0
2018-10-30 12:37:35 +0000

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

Advertisement