MySQL 명령줄 클라이언트의 자동 완성
Linux를 비롯한 많은 시스템에서 터미널을 탐색할 때 를 눌러 디렉토리 또는 파일 이름을 자동으로 완료할 수 있습니다.
MySQL 단말기에 그런 것이 있는지 궁금합니다.예를 들어, 의 설명을 취득하고 싶은 경우someTableWithRidiculousLongName
타이핑도 할 수 있고describe someTableW
그러면 나머지는 자동으로 완성됩니다.
MySQL 단말기에 그런 게 있나요?
파일 편집 또는 생성:.my.cnf
다음을 포함하는 홈 디렉토리:
[mysql]
auto-rehash
MySQL 프롬프트 내에서 자동 완료를 활성화하려면 다음과 같이 입력합니다.
mysql> \#
그런 다음 다음을 입력할 수 있습니다.
mysql> describe someTableW[TAB]
입수 방법:
mysql> describe someTableWithRidiculousLongName
추가 옵션을 사용하여 MySQL 콘솔 시작--auto-rehash
,예.
mysql --auto-rehash -u root -p
오래된 질문이지만 고급 자동 완성 기능을 갖춘 MySql CLI 클라이언트 mycli를 발견했습니다.내장된 자동 재해시 기능보다 훨씬 스마트합니다.
OS X 10.11.6에서는 위에서 설명한 바와 같이 --auto-re-hash를 설정했지만 동작하지 않았습니다.(이것은 OS X이므로 mysql은 BSD libedit 라이브러리와 함께 컴파일됩니다.)
그리고 mysql 클라이언트의 vi 키 바인딩을 ~/.editrc를 작성하여 bind -v라는 한 줄로 설정했다는 것을 기억했습니다.이것은 mysql 클라이언트에서 vi와 같은 네비게이션을 제공하는 데 매우 효과적이지만, 열 이름 완성이 깨졌습니다(.editrc를 삭제하여 확인할 수 있었습니다).
그래서 조금 조사해보니, ~/.editrc는 적어도 다음 행이 있어야 합니다.
bind -v
bind \\t rl_complete
이 추가 행이 있으면 mysql에서 이름 완성이 올바르게 동작하고 vi와 같은 내비게이션도 동작합니다.(mysql 클라이언트의 네비게이션을 크게 향상시키는 다른 .editrc 설정이 있지만, 이 시점에서 논의의 스레드를 시작할 수는 없습니다.
자동 재해시에 관한 주의사항:
자동완료를 이노블로 하면 mysql 설정 파일 편집이 실행됩니다.
[mysql]
auto-rehash
모든 사용자에 대해 실행할 수도 있고 한 명의 사용자에 대해서만 실행할 수도 있습니다.
/etc/my.cnf
: 모든 사용자
~/.my.cnf
: 실제 사용자
자동 완성 추가를 비활성화할 수도 있습니다.
no-auto-rehash
출처: http://www.sysadmit.com/2016/08/linux-mysql-autocompletar.html
명령 기록을 기반으로 자동 완료할 수도 있습니다.입력을 시작한 다음 바인딩된 키를 호출합니다.ed-search-prev-history
그리고.ed-search-next-history
이는 mysql이 libedit을 지원하는 경우에 적용됩니다.기본 키바인딩은 Ctrl+P 및 Ctrl+N이지만 .editrc에서 커스터마이즈할 수 있습니다.Ctrl-up 및 Ctrl-down의 예를 다음에 나타냅니다.
# start typing, then press Ctrl-Up
bind "\e[1;5A" ed-search-prev-history
# start typing, then press Ctrl-Up, then Ctrl-Down
bind "\e[1;5B" ed-search-next-history
으로 readline을 기반으로 했습니다.history-search-backward
★★★★★★★★★★★★★★★★★」history-search-forward
을 사용하다.inputrc의 .inputrc의 .inputrc.「 」 「 」 :
# these are the key bindings for the readline library
# start typing, then press Ctrl-Up
"\e[1;5A": history-search-backward
# start typing, then press Ctrl-Up, then Ctrl-Down
"\e[1;5B": history-search-forward
이렇게 .sel
Ctrl+Up, Ctrl+Up을 합니다.select * from some_long_table_name
까까 사사 ?령 령? ???
언급URL : https://stackoverflow.com/questions/8332338/autocompletion-in-the-mysql-command-line-client
'programing' 카테고리의 다른 글
mysqldump를 시도할 때 "mysqldump 변수 'key_buffer_size=256M"이 표시됩니다. (0) | 2022.09.21 |
---|---|
'다른 테이블을 스토리지 엔진에 커밋' 상태에서 쿼리를 롤백할 수 있습니까? (0) | 2022.09.21 |
Python의 해시 맵 (0) | 2022.09.21 |
ProceedingJoinPoint에서 메서드의 주석 값을 가져오려면 어떻게 해야 합니까? (0) | 2022.09.21 |
MariaDB 구문에 대한 SQL 구문 확인 (0) | 2022.09.21 |