MySQL 명령 프롬프트를 종료하는 방법?


37

MySQL을 설치했습니다. 이제 MySQL 명령 프롬프트에 갇혀 있습니다. 나는 다음과 같이 MySQL을 실행했다.

C:\>mysql.exe
mysql>

그런 다음 다음과 같이 잘못된 명령을 입력하십시오.

mysql> /version
    ->

그리고 입력 한 내용에 관계없이 MySQL 명령 줄 / 터미널을 종료 할 수 없습니다. 예 :

  • exit

  • CtrlC

  • CtrlD

  • quit

  • Ctrl\

  • CtrlZ

  • bye

MySQL 터미널을 기본 터미널로 어떻게 종료합니까?


1
컴퓨터를 종료하려고 했습니까? / s
VarunAgw

답변:


29

다른 답변에 추가하려면 세미콜론을 사용하여 현재 유효하지 않은 쿼리를 종료하면됩니다.

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

c:\mysql\bin>

또는 \G(행을 세로로 표시해야 함)을 사용하십시오.

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

c:\mysql\bin>

물론 두 옵션 모두 시작 인용 부호가 없다고 가정합니다. 그럴 경우, 먼저 따옴표로 묶어야합니다.


저를 트립 한 것은 mysql 터미널이 여기에 정의 된 다양한 견적 모드에서 입력을 처리하는 방법을 완전히 이해하지 못했다는 것입니다 : dev.mysql.com/doc/refman/5.0/en/entering-queries.html 5 가지 모드가 있습니다 : ->, '>, ">, `>,와 /*> 나는 최신 버전에 다시 테스트하고 제대로했다. 따라서 수정 된 버그처럼 보입니다.
Eric Leschinski 2016 년

세미콜론은 작동하지 않습니다 ... 아무 것도 작동하지 않습니다. \ G를 수행하면 마치 바보 같은-> 모드를 종료 한 것처럼 작동하지만 다른 명령 후에 다시 돌아갑니다. 왜 mysql이 이것에 대해 바보입니까?
Amalgovinus

진정한 대답은 Windows의 mysql cli가 망가져 막힐 수 있다는 것입니다. 창에서 가장 쉬운 방법은 git bash를 사용하는 것입니다
Amalgovinus

20

Windows에서 ctrl-c가 mysql 입력 모드를 종료하지 않는 이유는 무엇입니까?

종료 명령을 유효한 입력으로 해석하도록 MySQL에 지시했기 때문입니다.

MySQL 터미널을 이해하기 어려운 이유는 작은 따옴표, 큰 따옴표 및 일반 모드에 대해 서로 다른 모드가 있다는 것입니다.

따라서 mysql 입력 모드를 종료하려면 다음 단계를 수행해야합니다.

  1. 큰 따옴표 모드에서 벗어나십시오.
  2. 작은 따옴표 모드에서 벗어나십시오.
  3. mysql 모드에서 나가십시오.
  4. mysql을 기본 터미널로 다시 종료하십시오.

가장 기본적인 예 :

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

C:\>

위의 예제에서 기본 모드를 종료하지 않았으므로 exit 명령이 올바르게 작동합니다.

예 2 (이것이 당신을 방해하는 것입니다).

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

작은 따옴표 모드 또는 큰 따옴표 모드에있는 동안 이스케이프 시퀀스는 고려되지 않습니다. 이 모드에서는 짝수 Ctrl-CCtrl-D무시됩니다.

26 개의 유니버스 중 어느 모드에서 Ctrl-C가 모드에 관계없이 프로그램을 중지하지 않습니까? 우리는 알지 못할 수도 있습니다. 바 징가.


1
나는 따옴표가 물건을 피하고 더 많은 입력을 기다리고 있다고 추측합니다. 데이터베이스에 "exit"와 같은 것을 저장할 때 실제로는 이치
Journeyman Geek

@Eric, 인용 모드 일 때는 Ctrl-D가 작동하지 않지만 mysql 5.5.43 및 mysql 5.1.73과 같은 이전 클라이언트를 사용하는 경우 Ctrl-C는 여전히 작동 합니다 . 승리 8.1에서 테스트했습니다.
Pacerier

Ctrl-c는 여전히 나를 떠나지 않습니다. 나는 "bye"메시지를받지 못한다. 또한-> 모드로 고정되어있을 때 Ctrl + C 만 나가면됩니다. 다른 어떤 것도 통역사로부터 응답을 얻지 못합니다. MySQL은 대부분 직관적이지만, 그런 경우는 아닙니다.
Amalgovinus 2012

터미널 에뮬레이터가 Ctrl 코드를 이동시키고 텍스트로 해석되는 프로세스에 다른 키 코드를 보내는 중일 수 있습니다. 나는 당신의 고통을 느낍니다. 2013 년 에이 게시물을 다시 썼을 때,이 문제와 백만 명의 다른 사람들이 내 이전의 Windows 시스템이 내 PC를 오염시키기 위해 쓰레기통에 갇혀 쓰레기에 꽂 혔을 때였습니다. 매립지에 매립되어 있습니다. . 이 문제를 해결하는 유일한 방법은 Windows 운영 체제를 제거하고 Ctrl-C가 작동하지 않도록 중개인을 삽입하는 이러한 범죄를 저 지르지 않는 Mac 및 Linux 이념으로 마이그레이션하는 것입니다.
Eric Leschinski

1

SQL은 여러 줄로 입력 된 쿼리를 지원합니다. 세미콜론을 입력 할 때만 ;쿼리가 실행됩니다. 또한 쿼리에서 모든 문자열을 종료해야합니다.

단어 처리 패키지의 문자열을 사용하여 쿼리를 복사하여 붙여 넣는 것을주의하십시오. 따옴표는 '스마트 따옴표'로 대체되어 쿼리가 엉망이됩니다.

종료되지 않은 쿼리를 입력 한 경우 실행되지 않으며, 이로 인해 exit 입력이 작동하지 않습니다. MySQL은 여전히 ​​쿼리 중간에 있다고 생각합니다. 명령 프롬프트가 변경되어 쿼리를 종료하는 데 필요한 입력이 표시됩니다. 예를 들어 따옴표 또는 큰 따옴표가 필요할 수 있습니다. 이것은 강력하고 명령 프롬프트가 도움이되지만이 스레드에 대한 답변과 의견을 읽을 때까지 혼란 스럽습니다.

여기서 사양을 읽으십시오

'최상위'프롬프트는 다음과 같습니다.

MySQL>

이것이 보이면 명령을 입력하고; Enter를 누르십시오.

다음과 같은 프롬프트가 표시되면

'>
">
->

그런 다음 MySQL은 따옴표로 묶거나 세미콜론으로 쿼리를 끝내기를 기다리고 있습니다.

엉망이 된 종료되지 않은 쿼리를 취소하고 기본 프롬프트로 돌아가도록 MySQL에 알리는 방법은 다음과 같습니다.

\c

나는 이것이 의도하지 않은 쿼리를 종료하고 실행하는 것보다 안전하다고 생각합니다. 그런 다음> 프롬프트로 돌아가서 다음으로 종료 할 수 있습니다.

exit


0

Ctrl+ Shift+ 를 사용하여 탈출을 시도 할 수 있습니다D


3
이것은 사용중인 특정 터미널 에뮬레이터의 아티팩트이므로 어느 것이 당신의 것인지 알면 도움이 될 것입니다. 당신은 분명히 mysql 프로세스가 종료를 의미하는 것으로 해석하는 키 코드로 Ctrl-Shift-D를 다시 바꿨습니다. 이 경우 터미널 에뮬레이터에서 키 코드를 다시 매핑하여 프로그램을 종료하기 위해 손목 터널을 얻을 필요가 없습니다.
Eric Leschinski
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.