Ir para o conteúdo

 Voltar a Banco de Tal...
Tela cheia

Case Sensitive - Linux

7 de Abril de 2009, 15:29 , por Desconhecido - | 1 Pessoa seguindo este artigo.
Visualizado 72 vezes

Prezados, boa tarde.

Gostaria de saber se alguém teve o mesmo problema que eu.

Os scripts para criação das tabelas e carga, usam os nomes das tabelas todos em MAIUSCULO. Já o sistema tenta usar as tabelas com as primeiras letras das palavras em mauisculo as demais em minusculo, por exemplo:

O script gera USUARIOSISTEMA enquanto o sistema procura a tabela UsuarioSistema.

No linux o mysql é case sensitive. Isso faz com  que o sistema não funcione.

O meu ambiente é:

Debian 4.0

Mysql 5

Apache Tomcat/6.0.16.

Autor: Anderson Jacson Silva


55 comentários

  • 12cf2da8b1a1753868c7e20816b7dab5?only path=false&size=50&d=404Eduardo Santos(usuário não autenticado)
    7 de Abril de 2009, 16:30

     

    Olá Anderson,

    Me parece que você tem razão. Esse problema acontece mesmo em algumas partes do código.

    Existem duas formas de resolver o problema e uma de "contornar" alterando a configuração da aplicação. Vamos à elas:

    A primeira opção seria converter o nome das tabelas no script de carga. Algo do tipo perl -ibak deve resvolver o problema, mas considero essa uma solução altamente desaconselhável. Você precisaria mapear todas as ocorrências das tabelas e descobrir o nome pelo qual elas são tratadas pelo sistema.
    Alterar os scripts de consulta pelo nome da tabela em caixa alta. Me parece o mais adequado a fazer, mas também seria muitro trabalhoso. Se quiser tentar, baixe o código-fonte da aplicação pelo SVN e teremos prazer em subir o código corrigido :)

    Por fim, a forma de "contornar" o problema que tenho certeza será  mais usada:

    Existe uma variável de ambiente no MySQL chamada lower_case_table_names que você pode alterar para que o banco não seja mais case sensitive. Dê uma olhada na documentação oficial do MySQL para descorbir como fazer: dev.​mysq​l.co​m/do​c/re​fman​/5.0​/en/​iden​tifi​er-c​ase-​sens​itiv​ity.​html

     É isso aí. Espero ter ajudado.

    • Bf9438372ebf8224b3c15d9fc9afa2a9?only path=false&size=50&d=404Anderson Jacson Silva(usuário não autenticado)
      8 de Abril de 2009, 10:28

       

      Olá Eduardo, bom dia.Muito obrigado pela atenção. Também cheguei a solução do lower_case. Outra coisa também é alterar os nomes das tabelas para o padrão do sistema, também meio trabalhoso. :DMas valeu, vou procurar a versão do SVN.Forte abraço.

      • 9f51bcedb945f1cbae2e122ad460955c?only path=false&size=50&d=404Richard Barbosa(usuário não autenticado)
        9 de Julho de 2009, 10:07

         

        Há alguma previsão na correção dessa incompatibilidade?

        • 12cf2da8b1a1753868c7e20816b7dab5?only path=false&size=50&d=404Eduardo Santos(usuário não autenticado)
          9 de Julho de 2009, 10:16

           

          Olá Richard,

          Não se trata necessariamente de uma incompatibilidade. Trata-se apenas de uma diferença de configuração. Como se trata de uma alteração bastante trabalhosa, acredito que ainda pode levar um tempo para ser feita a alteração.

          Todavia, reforço o comunicado que, se alguém tiver interesse em realizar as alterações, será uma contribuição muito bem-vinda à comunidade e teremos prazer em inserir no código-fonte de distribuição.

  • Dae1bf34e91ca74f3487d85530767449?only path=false&size=50&d=404Helcio do Prado(usuário não autenticado)
    25 de Julho de 2009, 18:30

     

    Prezado Anderson.

     

     

    Vc conseguiu resolver o seu problema, eu tbém utilizo Linux R.H

    alterei os script que gera as tabelas pra minusculos ex. UsuarioSistema,

    mas não funcionou legal não.

     

    att+

Essa comunidade não possui posts nesse blog