Se você deseja um método que não envolva a execução de um cliente mysql e o login no servidor mysql, você pode fazer o seguinte:
if ls -l /var/lib/mysql/database/table.frm 2> /dev/null > /dev/null
then
echo Table exists
else
echo Table does not exist
fi
Você precisará substituir o caminho para o diretório de dados, o nome do banco de dados e o nome da tabela na primeira linha.
Ressalvas:
- Isso não funcionará se você estiver usando o InnoDB e não estiver usando o arquivo innodb por tabela. ou seja, o script pode dizer que a tabela não existe, mesmo que exista.
- É possível que esse arquivo exista por vários motivos, incluindo copiar tabelas usando o sistema de arquivos ou alternar do MyISAM para o InnoDB. ou seja, o script pode dizer que a tabela existe mesmo que não exista.
Não é tão confiável quanto os outros métodos já apresentados por causa dos motivos acima, mas evita o cliente mysql, portanto ainda pode valer a pena.
Observe que todos os métodos apresentados aqui dependem da obtenção correta de suas próprias permissões (sistema de arquivos ou MySQL). Se você errar, provavelmente terá um falso negativo.
.my.cnf
arquivo em seu diretório pessoal e adicionar um[client]
bloco contendopassword="my_password"
. Consulte a seção sobre arquivos de opções do usuário no manual.