Eu encontrei este bit em um fórum do FreeBSD, mas ele deve funcionar para você no seu caso também. O tópico do fórum foi intitulado: Por que não há autocompletar no mysql com o bash? .
As soluções mencionadas nesse encadeamento são as seguintes.
Opção # 1 - via cliente mysql
$ mysql --auto-rehash -p
Isso está diretamente fora da página mysql
man.
--auto-rehash
Enable automatic rehashing. This option is on by default, which enables
database, table, and column name completion. Use --disable-auto-rehash to
disable rehashing. That causes mysql to start faster, but you must issue the
rehash command if you want to use name completion.
To complete a name, enter the first part and press Tab. If the name is
unambiguous, mysql completes it. Otherwise, you can press Tab again to see
the possible names that begin with what you have typed so far. Completion
does not occur if there is no default database.
Opção # 2 - via servidor
Você também pode corrigir isso no servidor final comentando a mesma linha de recurso no arquivo /etc/my.cnf
do servidor. Depende de onde veio o seu arquivo my.cnf
. O MySQL fornece vários arquivos .cnf
da amostra.
Exemplo
Isto está no meu sistema CentOS, compre o seu sistema Debian, provavelmente também tem estes.
$ rpm -ql mysql-server |grep cnf
/usr/share/doc/mysql-server-5.0.95/my-huge.cnf
/usr/share/doc/mysql-server-5.0.95/my-innodb-heavy-4G.cnf
/usr/share/doc/mysql-server-5.0.95/my-large.cnf
/usr/share/doc/mysql-server-5.0.95/my-medium.cnf
/usr/share/doc/mysql-server-5.0.95/my-small.cnf
/usr/share/mysql/my-huge.cnf
/usr/share/mysql/my-innodb-heavy-4G.cnf
/usr/share/mysql/my-large.cnf
/usr/share/mysql/my-medium.cnf
/usr/share/mysql/my-small.cnf
Se um desses arquivos for a base do seu arquivo /etc/my.cnf
, você poderá ter essa linha ativada dentro dele. Por exemplo, esses arquivos estão habilitados:
$ grep rehash /usr/share/doc/mysql-server-5.0.95/*
/usr/share/doc/mysql-server-5.0.95/my-huge.cnf:no-auto-rehash
/usr/share/doc/mysql-server-5.0.95/my-innodb-heavy-4G.cnf:no-auto-rehash
/usr/share/doc/mysql-server-5.0.95/my-large.cnf:no-auto-rehash
/usr/share/doc/mysql-server-5.0.95/my-medium.cnf:no-auto-rehash
/usr/share/doc/mysql-server-5.0.95/my-small.cnf:no-auto-rehash
Então, você desejará comentar esta linha se tiver ativado em seu arquivo /etc/my.cnf
, da seguinte forma:
#no-auto-rehash
Seu alias
Dado o método que você está empregando para chamar o cliente mysql usando rlwrap
, você pode acrescentar os --auto-hash -p
a ele da seguinte forma:
$ alias mysql='/usr/bin/rlwrap -s 99999 -a -pRED /usr/bin/mysql --auto-rehash -p'