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

Hoe verlaat ik de MySQL opdrachtprompt?

Ik heb MySQL geïnstalleerd. Nu zit ik vast in de MySQL commando prompt. Ik heb MySQL als volgt gestart:

C:\>mysql.exe
mysql>

Dan typ ik een ongeldig commando in zoals dit:

mysql> /version
    ->

En het maakt niet uit wat ik typ, ik kan MySQL command-line / terminal niet verlaten. Bijv:

  • exit

  • CtrlC

  • CtrlD

  • quit

  • CtrlZ

  • bye

Hoe kan ik de MySQL terminal verlaten naar de standaard terminal?

Respuestas (5)

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

Om aan te sluiten bij het andere antwoord, zou je de huidige ongeldige query gewoon kunnen beëindigen met een puntkomma:

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

c:\mysql\bin>

Of met \G (waardoor rijen verticaal worden weergegeven):

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

c:\mysql\bin>

Natuurlijk gaan beide opties ervan uit dat je geen openingsaanhalingsteken hebt. Als je dat wel hebt, moet je het eerst afsluiten met een eindcitaat.

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

Waarom sluit ctrl-c mysql input mode niet af in Windows?

Omdat je MySQL verteld hebt om je exit commando’s als geldige input te interpreteren.

Wat de MySQL terminal moeilijk te begrijpen maakt, is dat er verschillende modes zijn voor enkele aanhalingstekens, dubbele aanhalingstekens, en normale mode.

Dus om uit de mysql input mode te komen, moet u deze stappen uitvoeren:

  1. Ga uit de dubbele aanhalingstekens modus.
  2. Kom uit de enkele aanhalingstekens modus.
  3. Ga uit de mysql mode.
  4. Verlaat mysql terug naar de standaard terminal.

Het meest eenvoudige voorbeeld:

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

C:\>

Je hebt de standaard modus nooit verlaten in het bovenstaande voorbeeld, dus exit commando’s werken correct.

Voorbeeld 2 (dit is wat je in de war brengt).

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:\>

Terwijl je in enkele aanhalingstekens modus of dubbele aanhalingstekens modus bent, worden geen escape-sequenties gerespecteerd. Zelfs Ctrl-C en Ctrl-D worden in deze modi genegeerd.

In welk van de 26 universums stopt Ctrl-C een programma niet, ongeacht de mode? We zullen het misschien nooit weten. Bazinga.

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

SQL ondersteunt query’s die als meerdere regels worden ingevoerd. Alleen wanneer u een puntkomma ; invoert, wordt de query uitgevoerd. U moet ook alle strings in uw query hebben afgesloten.

Pas op met het kopiëren en plakken van queries met strings uit een tekstverwerkingspakket - aanhalingstekens kunnen vervangen zijn door ‘slimme aanhalingstekens’ en dit zal uw query in de war sturen.

Als je een query hebt ingevoerd die niet is beëindigd, wordt hij niet uitgevoerd, en dat is waarom het typen van exit niet werkt - MySQL denkt dat je nog steeds in het midden van een query zit. De commando prompt verandert om te laten zien welke invoer nodig is om de query te beëindigen. Bijvoorbeeld een aanhalingsteken of dubbel aanhalingsteken kan nodig zijn. Dit is krachtig en de opdrachtprompt is nuttig, maar ik vond het verwarrend totdat ik de antwoorden en opmerkingen op deze thread las. lees de specificatie hier

De ‘top level’ prompt is:

mysql>

Als je dit ziet, dan kun je een commando invoeren, het laten eindigen met ; en op enter drukken.

Als je een prompt als deze ziet:

'>
">
->

Dan wacht Mysql op u om een string af te sluiten met een aanhalingsteken of een query met een puntkomma.

Hier is hoe je MySQL kunt vertellen om je verknoeide query te annuleren en je terug te brengen naar de hoofd prompt:

\c

Ik denk dat dit veiliger is dan het beëindigen en uitvoeren van uw onbedoelde query. Hierna zou u terug moeten zijn bij de >> prompt en kunt u afsluiten met:

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

\q doet het werk voor mij. Ik gebruik Ubuntu Terminal.

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

U kunt proberen te ontsnappen met Ctrl+Shift+D