MySQL 명령줄 클라이언트에서 탭 완성이 작동하지 않습니다.

MySQL 명령줄 클라이언트에서 탭 완성이 작동하지 않습니다.

Homebrew를 사용하여 Mac에 MySQL 5.7.10을 설치했습니다. 내 Mac에서는 OSX 10.11.3을 실행하고 있습니다.

MySQL 명령줄 클라이언트를 실행할 때 키워드, 테이블 이름 또는 열 이름에 탭 완성 기능을 사용할 수 없습니다.

탭을 완료하려면 어떻게 해야 하나요?

joenyland@Joes-MBP ~ $ mysql --auto-rehash
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 5.7.10 Homebrew

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

이것은 다음의 출력입니다 otool.

joenyland@Joes-MBP ~ $ otool -L /usr/local/bin/mysql
/usr/local/bin/mysql:
    /usr/lib/libedit.3.dylib (compatibility version 2.0.0, current version 3.0.0)
    /usr/local/opt/openssl/lib/libssl.1.0.0.dylib (compatibility version 1.0.0, current version 1.0.0)
    /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib (compatibility version 1.0.0, current version 1.0.0)
    /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.1.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1226.10.1)

답변1

테이블 및 열에 대한 탭 완성은 해당 테이블이 포함된 데이터베이스에 연결되어 있거나 해당 데이터베이스를 사용하는 경우에만 작동합니다. 서버를 실행 mysql하고 연결하면 명령줄(또는 cnf 파일)에서 연결할 데이터베이스를 지정하지 않는 한 mysql 시스템 테이블만 표시됩니다. use mydatabase;모든 테이블 mydatabase에 대해 탭 완성을 허용하려면 실행하기만 하면 됩니다 . 또는 명령줄에서 직접 데이터베이스에 연결

mysql mydatabase

답변2

mysql클라이언트가 를 사용하여 구축된 경우 readlineauto-rehash기능을 사용하여 이를 수행할 수 있습니다. 가능한 해결 방법은 다음과 같습니다.

  • 명령줄 옵션--auto-rehash
  • 명령( mysql)에 다음을 입력합니다.rehash
  • .my.cnf다음을 포함하는 홈 디렉터리에서 호출되는 구성 파일:

    [mysql] 자동 재해시

추가 자료:

OSX libedit 라이브러리는 readline과 거의 동일합니다(동일한 기능에 대해 일부 인터페이스 차이가 있음). MySQL은 이들 중 하나로 구축될 수 있습니다. 예를 들어 다음은 이를 언급합니다.

관련 정보