Su Unix, il valore predefinito di lower_case_table_names
è 0. Su Windows, il valore predefinito è 1. Su Mac OS X, il valore predefinito è 1 prima di MySQL 4.0.18 e 2 a partire dalla 4.0.18.
Per risolvere questo problema, è possibile cercare l'impostazione: lower_case_table_names nel file my.ini, trovato in: C: \ Programmi \ MySQL \ MySQL Server 4.1, a seconda della versione in esecuzione. Se non si trova l'impostazione, si può semplicemente aggiungere alla fine del file my.ini, come ho fatto io, in questo modo:
lower_case_table_names=0
Ricordarsi di riavviare il servizio MySQL prima di verificare se Funziona.
Se si utilizza MySQL su una sola piattaforma, normalmente non è necessario modificare la variabile lower_case_table_names dal valore predefinito. Tuttavia, è possibile incontrare difficoltà se si desidera trasferire tabelle tra piattaforme diverse per la distinzione tra maiuscole e minuscole nel file system. Ad esempio, su Unix, puoi avere due tabelle diverse denominate my_table e MY_TABLE, ma su Windows quei nomi sono considerati identici. Per evitare problemi di trasferimento dati derivanti da lettere di database o nomi di tabelle, hai due opzioni:
Usa lower_case_table_names = 1 su tutti i sistemi. Lo svantaggio principale di questo è che quando usate SHOW TABLES o SHOW DATABASES, non vedete i nomi nella loro originale lettera maiuscola.
Usa lower_case_table_names = 0 su Unix e lower_case_table_names = 2 su Windows. Ciò mantiene la lettera maiuscola dei nomi di database e tabelle. Lo svantaggio di questo è che devi assicurarti che le tue affermazioni facciano sempre riferimento al tuo database e ai nomi delle tabelle con il corretto valore letterale di Windows. Se trasferisci le tue istruzioni su Unix, dove la lettera maiuscola è significativa, non funzionano se la lettera maiuscola è errata.
Eccezione: se si utilizzano le tabelle InnoDB e si tenta di evitare questi problemi di trasferimento dei dati, è necessario impostare lower_case_table_names su 1 su tutte le piattaforme per forzare i nomi da convertire in lettere minuscole.
Se si pianifica di impostare la variabile di sistema lower_case_table_names su 1 su Unix, è necessario prima convertire i vecchi database e nomi di tabelle in minuscolo prima di arrestare mysqld e riavviarlo con la nuova impostazione di variabile.
Si prega di consultare il sito web di MySQL per ulteriori informazioni su questo, e alcune avvertenze importanti http://dev.mysql.com/doc/refman/4.1/en/identifier-case-sensitivity.html
questa è una domanda interessante. Causa problemi come il tuo SQL funzionano in Windows e non nel sistema basato su Unix. AFAIK, non c'è soluzione al riguardo. – Nishant