Eu tenho batido minha cabeça contra esta por alguns dias agora. Temos duas semanas de snapshots de backup diários de nosso diretório de dados mysql de produção (ou seja, os arquivos binários reais, não dumps de sql) e eu preciso restaurar uma tabela de um dos backups para que possamos compará-lo com o que temos agora .
Então eu criei um diretório de esquema fictício e extraí os arquivos de tabela relevantes (.MYI, .MYD e .frm) e reiniciei o mysql. Ele aparece, eu posso "mostrar tabelas", mas se eu tentar interagir com ele de qualquer forma ("desc tablename", "select ...", etc) eu recebo:
Can't find file: './schema_name/table_name.frm' (errno: 13)
[ed: nomes reais são higienizados]
Errno 13 é permissões, então eu verifiquei tudo novamente. O diretório e os arquivos possuem o mesmo dono e grupo (mysql: mysql) que todos os outros esquemas. Eles também têm o mesmo perms (700 no dir, 660 nos arquivos). Olhando para "ls -n", os uids também combinam exatamente.
Mais recentemente, tentei fazer um extrato completo de um backup diferente e, em seguida, vinculá-lo ao diretório de dados mysql (não há espaço suficiente nesse volume para extrair a coisa completa) e recebo o mesmo erro. Eu também tentei apontar o diretório de dados do mysql em my.cnf para o diretório que está mantendo o backup e reiniciando. Ele construiu as tabelas mysql que precisavam estar lá, mas eu ainda tenho o mesmo erro.
A única coisa que posso encontrar no googling são pessoas que tiveram esse problema por causa de erros reais de propriedade ou permissão, o que não parece ser o caso para mim. Eu também encontrei algumas observações sobre uma variável env do UMASK que pode resultar nesse erro, mas acho que tem a ver com instalações novas, o que não é.