No mysql, quero definir lower_case_table_names = 1 em bancos de dados existentes para evitar problemas de diferenciação de casos em várias plataformas

5

No mysql, quero definir lower_case_table_names = 1 em bancos de dados existentes para evitar problemas de sensibilidade de casos em várias plataformas.

A) What are the risks ? ( além do programa problema de tabela )

B) Depois de definir lower_case_table_names = 1, eu estarei em posição de consultar bancos de dados      várias plataformas de forma consistente?       select * from USERS == select * from users ;

C) Como os gatilhos + procedimento armazenado + funções + visualizações + eventos     será afetado a este respeito. Eu sei que lower_case_table_names é apenas para "TABLE"
nomes, mas como sobre aciona outros objetos de banco de dados. Eles permanecerão insensíveis a maiúsculas e minúsculas    Como sobre visualizações?

D) Preciso renomear todas as tabelas antes / depois dessa configuração ou isso fará o milagre em uma etapa (isto é, lower_case_table_names = 1 neutraliza os nomes das tabelas)?

E) Quais serão os passos exatos do WRT: mysqd / my.ini ?

    
por sakhunzai 16.08.2011 / 10:35

1 resposta

1

Nossos servidores eram Mysql no Windows e nós tivemos que mudá-los para o Linux. Nos novos servidores nós definimos lower_case_table_names = 1 em my.cnf e então copiamos os esquemas com mysqldump old-server | mysql new-server (Eu não me lembro se nós copiámos os esquemas mysql e information_schema também, ou apenas aqueles com nossos dados, você deve tentar ambos maneiras).

Tudo está funcionando da mesma maneira que antes. Além das tabelas, usamos views, stored procedures e stored functions (mas não triggers)

    
por 12.04.2012 / 10:56

Tags