Recentemente, cometi um erro bastante estúpido e corrompi minha instalação do Ubuntu. Para resolvê-lo, inicializei com um live cd e copiei os arquivos do banco de dados. No entanto, agora eu copiei as pastas da instalação antiga para a nova, sempre que digito "use database_name" ele apenas congela:
mysql> use my_database_name;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
E depois congela sem dar o terminal.
No primeiro comando "use" após o login, o MySQL verifica o nome do banco de dados, tabelas e colunas para preenchimento automático. Se você tiver muitos db, tabelas pode demorar um pouco.
Para evitar isso, inicie seu cliente com a opção -A (ou --no-auto-rehash)
Você também pode adicionar a variável disable_auto_rehash em seu my.cnf (na seção [mysql]) se quiser desativá-la completamente. Esta mudança não requer uma reinicialização (é um cliente, não um servidor, variável).
No meu caso, as "Informações da tabela de leitura" estavam demorando muito. Quando executei
mysql -e 'show processlist'
descobri que o processo que estava "travando" estava "Aguardando bloqueio de metadados da tabela". Isso fez algum sentido, pois eu tinha uma consulta de longa duração do formuláriocreate table from select ...
em execução em outro lugar, então, em um nível, pude entender que, até que a nova tabela terminasse de ser criada, os metadados sobre as tabelas não estariam disponíveis. (Acho que seria preferível se a verificação de preenchimento automático apenas omitisse quaisquer tabelas "incompletas" da consulta de metadados, se isso fosse possível.)