Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Deck of Cards
idmysql
Card
labelCase Sensitive


Por padrão, aliases de tabelas são case sensitive no Unix, mas não são no Windows. Para evitar problemas causados por esta característica, no MySQL é necessário adicionar a variável de sistema lower_case_table_names no arquivo de configuração do MySQL.

Painel
Deck of Cards
idcase
Card
labelMySQL em versão anterior a 8.0
Bloco de código
titleLinux: my.cnf / Windows: my.ini
lower_case_table_names=1
Card
labelMysql MySQL 8.0

Âncora
80
80

Para fazer a configuração no No Linux e MySQL 8.0, siga os passos abaixo:

Nota
titleAtenção!

Faça o backup dos esquemas existentes antes de executar as etapas a seguir.

  1. Pare o serviço do MySQL.

    Bloco de código
    sudo service mysql stop
  2. Mova ou remova o diretório /var/lib/mysql. Isso excluirá todos os bancos de dados!

    Bloco de código
    mv /var/lib/mysql /tmp/mysql


  3. Crie um novo diretório /var/lib/mysql e torne o usuário mysql como proprietário.

    Bloco de código
    mkdir /var/lib/mysql
    chown -R mysql:mysql /var/lib/mysql
    chmod 750 /var/lib/mysql


  4. Edite o arquivo /etc/mysql/mysql.conf.d/mysqld.cnf e adicione a seguinte linha após [mysqld].

    Bloco de código
    lower_case_table_names=1
  5. Inicialize o MySQL usando o seguinte comando.

    Bloco de código
    mysqld --defaults-file=/etc/mysql/my.cnf --initialize lower_case_table_names=1 --user=mysql --console
  6. Repetir (Opcional)

    Bloco de código
    chown -R mysql:mysql /var/lib/mysql
    chmod 750 /var/lib/mysql

    “se o dono dos arquivos em /var/lib/mysql não for o mysql


  7. Inicie o serviço do MySQL.

    Bloco de código
    sudo service mysql start
  8. Conecte no banco usando o comando:

    Bloco de código
    mysql -u root -p

    E execute esta consulta:

    Bloco de código
    SHOW VARIABLES where Variable_name like 'lower%';

    O resultado deve ser:

    Bloco de código
    'lower_case_table_names', '1'
  9. Restaure os esquemas usando o dump criado antes das etapas.

  10. Execute mysql_upgrade para criar o esquema sys.




Card
labelEngines


Além disso é necessário confirmar que as tabelas serão criadas corretamente no banco de dados. Para isso, no Command Line Client do MySQL verifique a engine utilizada informando o comando: 

Bloco de código
languagesql
SHOW ENGINES\G

Localize a engine InnoDB, conforme a imagem abaixo:

Se a engine InnoDB não for apresentada como Default, o parâmetro default_storage_engine também deve ser adicionado ao arquivo, conforme segue:

Bloco de código
titleLinux: my.cnf / Windows: my.ini
default_storage_engine=InnoDB
Card
labelMemória


Também é possível definir a quantidade de memória a ser usada pelo MySQL. Em um servidor dedicado, a boa prática é alocar 75% da memória disponível para o banco de dados:

Bloco de código
titleLinux: my.cnf / Windows: my.ini
innodb_buffer_pool_size=<valor em bytes>


Por exemplo, para alocar 128 MB de memória teríamos: innodb_buffer_pool_size=134217728.


Card
labelCriação de Tabelas


Caso sejam criados formulários com muitos campos, sendo a maioria deles do tipo TEXT, o MySQL pode restringir a criação de tabelas em que o tamanho somado dos campos ultrapasse o limite permitido. 

Recomendamos efetuar as seguintes configurações no banco de dados para solucionar essa restrição:

Bloco de código
titleLinux: my.cnf / Windows: my.ini
innodb_log_file_size=512M
innodb_log_buffer_size=800M
innodb_strict_mode=0
Card
labelConfirmar alterações


Após realizar as configurações expostas nos passos anteriores, é necessário reiniciar o MySQL e confirmar a aplicação das alterações.

Para verificar se a configuração case sensitive foi efetuada com sucesso, execute o comando SQL abaixo. Se no resultado a coluna value possuir o valor 1 a configuração está correta.

Bloco de código
languagesql
SHOW GLOBAL VARIABLES LIKE 'lower_case_table_names';

Confirme também a alteração do Engine para InnoDB, caso tenha adicionado o parâmetro default_storage_engine ao arquivo:

Bloco de código
languagesql
SHOW ENGINES\G

Se a engine InnoDB aparecer como Default a configuração foi aplicada com sucesso.

...