Recentemente migrando um servidor MySQL da Versão 5 para a versão 8, nos deparamos com um problema de tabelas com nomes não encontrados nas pesquisas, porem como o servidor antigo era Windows e esse por sua vez não tem distinção de letras maiúsculas e minúsculas, tivemos que alterar um parâmetro no my.cfg para se adequar e não termos incompatibilidades nas migrações.

Seguem os passos feitos para a correção do problema:

1 – Parar o serviço do MySQL no servidor:

$ systemctl stop mysqld

2 – Remover o diretório de dados existente para a criação de um novo

$ rm -Rf /database/data; mkdir /database/data; chown mysql:mysql /database/data

3 – Alterar o arquivo/etc/my.cnf.d/mysql-server.cnf acrescentando a linha abaixo:

[mysqld]

lower_case_table_names=1

4 – Iniciar o MySQL com o comando abaixo, a fim de criar toda da estrutura de utilização do banco.

$ mysqld --defaults-file=/etc/my.cnf.d/mysql-server.cnf --initialize --user=mysql --console

5 – Verificamos se o banco encontra-se no ar e com o parâmetro setado corretamente

$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 8.0.32

Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>  SHOW VARIABLES where Variable_name like 'lower%';
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| lower_case_file_system | OFF   |
| lower_case_table_names | 1     |
+------------------------+-------+
2 rows in set (0.01 sec)

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *