Extraído de dev.mysql.com :
Para evitar problemas de transferência de dados decorrentes de letras maiúsculas de banco de dados ou nomes de tabela, você tem duas opções:
- Use lower_case_table_names=1 em todos os sistemas. A principal desvantagem disso é que quando você usa SHOW TABLES ou SHOW DATABASES, você não vê os nomes em suas letras maiúsculas originais.
- Use lower_case_table_names=0 no Unix e lower_case_table_names=2 no Windows. Isso preserva as letras maiúsculas dos nomes de banco de dados e tabelas. A desvantagem disso é que você deve garantir que suas instruções sempre se refiram ao banco de dados e aos nomes das tabelas com as letras corretas no Windows. Se você transferir suas declarações para o Unix, onde as letras maiúsculas são significativas, elas não funcionarão se as letras estiverem incorretas.
Exceção:Se você estiver usando tabelas InnoDB e estiver tentando evitar esses problemas de transferência de dados, você deve definir lower_case_table_names como 1 em todas as plataformas para forçar os nomes a serem convertidos em minúsculas.
Se você planeja definir a variável de sistema lower_case_table_names para 1 no Unix, você deve primeiro converter seu banco de dados antigo e nomes de tabela para minúsculas antes de parar o mysqld e reiniciá-lo com a nova configuração de variável.