Os nomes de tabela no MySQL diferenciam maiúsculas de minúsculas?
Na minha máquina de desenvolvimento do Windows, o código que tenho é capaz de consultar minhas tabelas, que parecem todas minúsculas. Quando implanto no servidor de teste em nosso datacenter, os nomes das tabelas parecem começar com uma letra maiúscula.
Os servidores que usamos estão todos no Ubuntu.
mysql
case-sensitive
mysql5
benstpierre
fonte
fonte
Respostas:
Em geral:
Os nomes de bancos de dados e tabelas não diferenciam maiúsculas de minúsculas no Windows e diferenciam maiúsculas de minúsculas na maioria das variedades do Unix.
Pode-se configurar como os nomes das tabelas são armazenados no disco usando a variável do sistema
lower_case_table_names
(no arquivo de configuração my.cnf em [mysqld]).Leia a seção: 10.2.2 Sensibilidade da caixa do identificador para obter mais informações.
fonte
Os nomes de banco de dados e tabela não diferenciam maiúsculas de minúsculas no Windows e diferenciam maiúsculas de minúsculas na maioria das variedades de Unix ou Linux.
para resolver o problema, defina o lower_case_table_names como 1
isso tornará todas as suas tabelas em minúsculas, não importa como você as escreva
fonte
Os nomes de tabela no MySQL são entradas do sistema de arquivos, portanto, não diferenciam maiúsculas de minúsculas se o sistema de arquivos subjacente for.
fonte
Depende da
lower_case_table_names
variável do sistema:Existem três valores possíveis para isso:
0
- letra especificada na declaraçãoCREATE TABLE
ouCREATE DATABASE
. As comparações de nomes diferenciam maiúsculas de minúsculas.1
- Os nomes das tabelas são armazenados em minúsculas no disco e as comparações de nomes não diferenciam maiúsculas de minúsculas.2
- letra especificada noCREATE TABLE
ouCREATE DATABASE
instrução , mas o MySQL as converte para minúsculas na pesquisa. As comparações de nomes não diferenciam maiúsculas de minúsculas.Documentação
fonte
Localize o arquivo em
/etc/mysql/my.cnf
Edite o arquivo adicionando as seguintes linhas:
[mysqld]
lower_case_table_names=1
sudo /etc/init.d/mysql restart
corra
mysqladmin -u root -p variables | grep table
para verificar selower_case_table_names
é1
agoraPode ser necessário recriar essas tabelas para fazê-lo funcionar
fonte