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を選択したら、しっかりと補完されるようになりました。