Para fazer isso funcionar no MySQL 8.0 e linux siga os passos abaixo
-
Faça backup do esquema mysql antes de executar as etapas a seguir usando
mysqldump -h localhost -u root -p mysql> /home/username/dumps/mysqldump.sql
e então pare o mysql usando
sudo service mysql stop
-
mova ou remova o diretório /var/lib/mysql. Isso excluirá todos os bancos de dados!!!!
mv /var/lib/mysql /tmp/mysql
-
Crie um novo diretório /var/lib/mysql e torne o usuário mysql como proprietário
mkdir /var/lib/mysql chown -R mysql:mysql /var/lib/mysql chmod 750 /var/lib/mysql
-
edite /etc/mysql/mysql.conf.d/mysqld.cnf e adicione a seguinte linha após
[mysqld] lower_case_table_names=1
-
Inicialize o mysql usando o seguinte
mysqld --defaults-file=/etc/mysql/my.cnf --initialize lower_case_table_names=1 --user=mysql --console
Altere o arquivo defaults com a localização real do seu arquivo default.mais informações sobre a inicialização do mysql aqui:https://dev.mysql.com/doc/refman/8.0/en/data-directory-initialization-mysqld.html
-
(Opcional) Repetir
chown -R mysql:mysql /var/lib/mysql chmod 750 /var/lib/mysql
se o dono dos arquivos em /var/lib/mysql não for mysql
-
Inicie o mysql usando
sudo service mysql start
-
Se tudo funcionou corretamente, abra o mysql usando
mysql -u root -p
e executando esta consulta
SHOW VARIABLES where Variable_name like 'lower%';
você vai ter
'lower_case_table_names', '1'
-
Restaure o esquema mysql usando o dump criado na etapa 0.
-
Execute mysql_upgrade para criar o esquema sys