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

¿Cómo salir del símbolo del sistema de MySQL?

He instalado MySQL. Ahora estoy atascado dentro de la línea de comandos de MySQL. He ejecutado MySQL así:

C:\>mysql.exe
mysql>

Luego escribo algún comando inválido como este:

mysql> /version
    ->

Y no importa lo que escriba, no puedo salir de la línea de comandos de MySQL / terminal. Por ejemplo

  • exit

  • CtrlC

  • CtrlD

  • quit

  • Ctrl\

  • CtrlZ

  • bye

¿Cómo salgo de la terminal de MySQL a la terminal por defecto?

Respuestas (5)

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

Para añadir a la otra respuesta, podrías simplemente terminar la consulta inválida actual usando un punto y coma:

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

c:\mysql\bin>

O usando \G (que se supone que hace que las filas se muestren verticalmente):

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

c:\mysql\bin>

Por supuesto, ambas opciones asumen que no tiene comillas de apertura. Si la tiene, debe cerrarla primero con una comilla final.

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

¿Por qué ctrl-c no sale del modo de entrada de mysql en Windows?

Porque le ha dicho a MySQL que interprete sus comandos de salida como entrada válida.

Lo que hace que el terminal de MySQL sea difícil de entender es que hay diferentes modos para comillas simples, comillas dobles y modo normal.

Así que para salir del modo de entrada de mysql, tendrá que hacer estos pasos:

  1. Salir del modo de comillas dobles.
  2. Salir del modo de comillas simples.
  3. Salir del modo mysql.
  4. Salir de mysql y volver a la terminal por defecto.

Ejemplo más básico:

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

C:\>

Nunca salió del modo por defecto en el ejemplo anterior por lo que los comandos de salida funcionan correctamente.

Ejemplo 2 (esto es lo que te está haciendo tropezar).

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

Mientras estés en modo comillas simples o comillas dobles, no se respetan las secuencias de escape. Incluso Ctrl-C y Ctrl-D se ignoran en estos modos.

¿En cuál de los 26 universos Ctrl-C no detiene un programa independientemente del modo? Puede que nunca lo sepamos. Bazinga.

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

SQL admite las consultas introducidas como líneas múltiples. Sólo cuando introduzca un punto y coma ; se ejecutará la consulta. También necesita haber terminado cualquier cadena en su consulta.

Cuidado con copiar y pegar consultas con cadenas desde un paquete de procesamiento de textos - las comillas pueden haber sido reemplazadas por ‘comillas inteligentes’ y esto estropeará su consulta.

Si ha introducido una consulta sin terminar, no se ejecuta, y es por eso que teclear exit no funciona - MySQL piensa que todavía está en medio de una consulta. El símbolo del sistema cambia para mostrar lo que se necesita para terminar la consulta. Por ejemplo, una comilla o una doble comilla puede ser necesaria. Esto es poderoso y el prompt de comando es útil pero lo encontré confuso hasta que leí las respuestas y comentarios en este hilo. lea la especificación aquí

El prompt de ‘nivel superior’ es:

mysql>

Si ves esto, entonces puedes introducir un comando, terminarlo con ; y pulsar enter.

Si ves un prompt como este:

'>
">
->

Entonces MySQL está esperando que termine una cadena con una comilla o una consulta con un punto y coma.

Así es como se le dice a MySQL que cancele su consulta sin terminar y le devuelva al prompt principal:

\c

Creo que esto es más seguro que terminar y ejecutar su consulta no intencionada. Después de esto, debería volver al prompt > y puede salir con:

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

\q me hace el trabajo. Usando el Terminal de Ubuntu.

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

Puedes intentar escapar usando Ctrl+Mayúsculas+D