[rt-users] MySQL issue - Windows vs. Linux - Table name case seems to matter

Maciej Dobrzanski reg.bestpractical at posterus.com
Wed Aug 14 05:50:50 EDT 2013


Stephen,

MySQL does not maintain internal dictionary where it could keep the list of
tables (but InnoDB does for its own purpose!). Instead, MySQL relies on the
information from the underlying file system. Since Windows does not care
about case of file names, 'users.frm', 'Users.frm' and 'UsErS.frm' are all
the same file, in MySQL 'users', 'Users' and 'USERS' will all be the same
table. On the other hand, Linux has case sensitive file names, so
'users.frm' and 'Users.frm' are two different files. In this case 'users'
and 'Users' also become two different tables.

Your problem is easy to fix, but the solution will depend on how the MySQL
server on Windows was configured and how the tables were created both in
MySQL and on disk. Typically either performing dump & restore or setting
lower_case_table_names=1 option (or both) on Linux is enough, however in
certain circumstances it may not be.

Please refer to this page
http://dev.mysql.com/doc/refman/5.5/en/identifier-case-sensitivity.html as
it will most likely contain the answers you need.

Maciek




More information about the rt-users mailing list