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.