将mysql转储从Linux导入到Windows,并保留表名称大小写

时间:2017-04-10 06:17:35

标签: mysql

我已经从Linux框创建了一个MySQL转储。当我看到转储文件表名称的内容被保留时,但是当我将同一个转储导入Windows框时,它正在丢失表名案例。

1 个答案:

答案 0 :(得分:0)

您似乎应该在Windows上设置lower_case_table_names=2(默认情况下为1)。在这种情况下,表和数据库名称使用CREATE TABLE或CREATE DATABASE语句中指定的字母大小存储在磁盘上,但MySQL在查找时将它们转换为小写。

有关详细信息,请参阅:http://dev.mysql.com/doc/refman/5.0/en/identifier-case-sensitivity.html

  

使用lower_case_table_names=1 on all systems。这样做的主要缺点是,当您使用SHOW TABLES或SHOW DATABASES时,您看不到原始字母组中的名称。

     

使用lower_case_table_names=0 on Unixlower_case_table_names=2 on Windows。这样可以保留数据库和表名的字母大小写。这样做的缺点是您必须确保您的语句始终在Windows上使用正确的字母大小引用您的数据库和表名。如果将语句转移到Unix,那么lettercase很重要,如果lettercase不正确,它们就不起作用。

     

异常:如果您正在使用InnoDB表,而您正试图避免这些数据传输问题,则应设置lower_case_table_names to 1 on all platforms以强制将名称转换为小写。