Mysql

選項卡完成在 MySQL 命令行客戶端中不起作用

  • March 18, 2016

我已經使用 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)

表和列的製表符補全僅在您連接或使用具有此類表的數據庫時才有效。當您執行mysql並連接到伺服器時,除非您已在命令行(或通過 cnf 文件)指定要連接的數據庫,否則您只能看到 mysql 系統表。只需執行use mydatabase;以允許所有表mydatabase使用製表符完成。或者直接在命令行上連接到數據庫

mysql mydatabase

如果您的mysql客戶端是用 建構的readline,您可以使用該auto-rehash功能來執行此操作。這些是可能的解決方案:

  • 命令行選項--auto-rehash
  • 命令(輸入mysql),輸入rehash
  • 在您的主目錄中呼叫的配置文件.my.cnf,其中包含:

$$ mysql $$ 自動重新散列

進一步閱讀:

OSX libedit 庫或多或少與 readline 相同(具有相同功能的一些界面差異)。MySQL 可以用其中任何一個建構。例如,這些提到它:

引用自:https://unix.stackexchange.com/questions/270309