MySQL case sensitive table names on Linux
Just altering the lower_case_table_names setting isn't enough.  It needs to be done before you import your database(s).

The MySQL 5.1 documentation lists a procedure for moving between Windows and Linux/UNIX.  This will ensure that your desired rules for enforcing case sensitivity are followed.  Take a look and verify that you did these steps in the correct order:


  To convert one or more entire databases, dump them before setting
  lower_case_table_names, then drop the databases, and reload them after
  setting lower_case_table_names:
  
  1 - Use mysqldump to dump each database:
  
  mysqldump --databases db1 > db1.sql
  
  mysqldump --databases db2 >
  db2.sql
  
  ... Do this for each database that must be recreated.
  
  2 - Use DROP DATABASE to drop each database.
  
  3 - Stop the server, set lower_case_table_names in the [mysqld] section of your \etc\mysql\my.cnf file, and restart the server.
  
  4 - Reload the dump file for each database. Because lower_case_table_names
  is set, each database and table name will be converted to lowercase as
  it is recreated:
  
  mysql &lt; db1.sql 
  
  mysql &lt; db2.sql