ITMySQL

MySQL TABでコード補完を行う方法

linuxを操作していて、TABで補完されていたのに、MySQLを起動したらTAB補完されない…ってなんか不便ですよね。 MySQLにも何か用意されているだろうと調べてみると、 —auto-rehash というオプションがあるとの情報が。 さっそく使ってみます。

rehashオプションを使用してみる

mysql -u ユーザ名 -p --auto-rehash

これでログインすれば、できるっぽいという情報を受けて、やってみたもののTAB補完されない…。 こういうときは落ち着いて、公式のドキュメントを確認します。 私の使用しているMySQLのバージョンが5.6なので https://dev.mysql.com/doc/refman/5.6/ja/mysql-command-options.html#option\_mysql\_auto-rehash ですね。 バージョンの確認方法は、

-bash-4.2$ mysql --version
mysql  Ver 14.14 Distrib 5.6.45, for Linux (x86_64) using  EditLine wrapper

一応、公式のドキュメントの一部を張り付けておきます。 以下引用

--auto-rehash 自動リハッシュを有効にします。このオプションはデフォルトでオンになっており、データベース、テーブル、およびカラムの名前補完が可能になります。リハッシュを無効にするには、--disable-auto-rehash を使用します。これにより、mysql の起動がより高速になりますが、名前補完を使用する場合は rehash コマンドまたはそのショートカット \# を発行する必要があります。 名前を補完するには、最初の部分を入力して Tab を押します。名前があいまいでない場合、mysql がその名前を補完します。そうでない場合は、Tab をもう一度押して、これまでに入力した値で始まる、考えられる名前を表示できます。デフォルトのデータベースがない場合、補完は行われません。  

ここで大事なのは、この部分ですね。 デフォルトのデータベースがない場合、補完は行われません。 要するに使用するデータベースを指定しろということです。 ログイン後に

use データベース名

で使用するDBを選択したら、しっかりと補完されるようになりました。