mysql 명령 줄 프로그램에서 Control-C를 수정 하시겠습니까?


10

에서 mysql명령 줄을 눌러 Control-C프로그램을 취소하며, 떠들썩한 파티에 당신을 가져. 에서 psql포스트 그레스의 하나, 현재의 쿼리를 죽일 것이고, psql의 프로그램을 멈추지 않을 것입니다. Control-Cmysql 프로그램에서 psql 스타일 동작을 얻는 방법이 있습니까? 나는 Control-C습관에 의해 압박을 받고 mysql에 다시 로그인해야한다는 것을 계속 발견했다 .

Control Cbash를 죽이지 않으며 그것을 누를 때 로그 아웃합니다. 좋은 생각입니다. Control-C‘당신이하고있는 일을 멈추십시오’를 의미합니다.

답변:


7

쿼리 실행 중 5.1에서 Ctrl-C 를 누르면 "쿼리 실행이 중단되었습니다"라는 메시지와 함께 실행이 중지됩니다.

    mysql> c에 삽입 rand () * 1000, sha1 (rand ()) FROM c;
    Ctrl + C로 중단 된 쿼리
    오류 1317 (70100) : 쿼리 실행이 중단되었습니다

추가 Ctrl-C프레스는 클라이언트를 죽입니다.

이전 버전은 문제의 언급에 따라 끔찍하게 죽으므로 가능한 경우 업그레이드 하십시오 :)

편집하다:

5.0.25 (및 5.1.10)에 추가 된 것 같습니다.


2
여전히 멍청한 행동이 있습니다. 쿼리 중에 Ctrl + C를 누르면 쿼리가 취소됩니다. 프롬프트에서 CTRL + C를 누르면 아무것도하지 않고 MySQL을 종료하지 않아야합니다. 아무 일도 일어나지 않을 때 Bash 프롬프트에서 CTRL + C를 누르면 새로운 줄을 인쇄하지만 기본적으로 아무것도하지 않습니다.
— Neil

실제로 내가 한 것은 psql 이하는 일이었습니다. 쿼리를 입력하는 도중에 이미 몇 줄을 입력했을 수 있으며 실수를하고 입력을 중단 한 다음 Ctrl 키를 누르면 C가 프롬프트로 다시 돌아 가야합니다.
— harmic

ctrl-C는 여전히 버전 5.5에서도 mysql CLI에서 빠져 나옵니다. 앤디의 대답은 약간 모호하지만 (최소한 나에게는) 최신 버전 이이 동작을 수정했다고 생각하게되면 잘못 인도되었습니다.
— ndemou

@ndemou 어떤 플랫폼에 있습니까? 내 대답은 RHEL5에서 테스트되었습니다.
— Andy

@Andy는 우분투 12.04에서 테스트되었습니다. "5.0.25에 추가 된 것 같습니다"라고 쓰고 있습니다. 무엇을 추가했다고 생각하십니까? 그것은 이해하지 못하는 당신의 대답의 일부입니다. 아래의 답변도 참조하십시오.
— ndemou

13

Andy가 말했듯이, 그것은 이후 버전에서 수정되었습니다.

이전 버전에는 동등한 키보드 단축키가 없습니다.

그러나 다음 CLI 플래그를 사용하여이를 방지 할 수 있습니다.

--sigint-ignore

Ignore SIGINT signals (typically the result of typing Control-C).

--sigint-ignore는 장기 실행 쿼리를 중지하는 기능도 제거합니다. 오! 이후 버전 (<= 5.5) AFAICT에서는 질문과 관련된 내용이 수정되지 않았습니다. 아래 답변을 참조하십시오.
— ndemou

5

Ctrl-c를 사용하는 대신 줄 끝에 \ c를 추가하면 mysql을 종료하지 않고 줄을 죽일 수 있습니다.


3

짧은 대답 : 2014 년 초 현재 mysql에서 설명 된 동작을 수행 할 수있는 방법이 없습니다. 참조 관련 버그 리포트 3 개의 다른 사람들이 어디서 dba.stackexchange의 페이지를 여전히 버전 5.5에 고정되어 있지 있다고 언급 . 또한 긴 인터넷 검색 후 알 수있는 한 사용할만한 해결 방법이 없습니다 (왜 -sigint-ignore가 좋지 않은지 아래 참조). Andy의 답변은 "5.0.25 (및 5.1.10)에 추가 된 것 같습니다."라고 언급하기 위해 편집되었습니다. 그러나 그는 앞서 언급 한 버그 보고서에서 날짜 [2006 년 5 월 3 일 19:04]에 대한 주석으로 오해되었을 것입니다.

--sigint-ignore 인수 (Dan Carley의 답변 참조)는 ctrl-C를 눌렀을 때 mysql이 쉘로 다시 떨어지지 않게하지만 장기 실행 쿼리를 중지하는 기능 도 제거합니다 .

이것은 유용성 버그의 일종입니다 :-( 정말 명백하고 아마 고치기가 쉽지만 여전히 몇 년이 지난 후에도 여기에 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.