MySQL case sensitivity of table names between windows and linux systems

Submitted by Charles on Wed, 02/07/2007 - 14:53
While I normally stick to all lowercase table names for my MySQL database tables, I often have to come in on a project where the database has already been set up using a mixture of lower and uppercase table names. Because windows is case-insensitive, when you create a MySQL table or export tables for use on a linux system, all table names will be lowercase by default. This will cause problems when the dump imported into MySQL on linux, as any calls to the original mixed case tables will result in errors, as these tables don't actually exist. To fix this, you can look for the setting: lower_case_table_names in your my.ini file, found in or around: C:\Program Files\MySQL\MySQL Server 4.1, depending on which version you are running. If you don't find the setting, you can just add it to the end of the my.ini file, as I did, like so: lower_case_table_names=0 Remember to restart the MySQL service before you test whether or not it works. You can also set this value to 2 if you want, and then: "MySQL converts them to lowercase on lookup. Name comparisons are not case sensitive." Please check out the MySQL website for additional information about this, and some important warnings