Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

lower_case_table_names=1 no Ubuntu 18.04 não permite que o mysql inicie


Para fazer isso funcionar no MySQL 8.0 e linux siga os passos abaixo

  1. 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

  1. mova ou remova o diretório /var/lib/mysql. Isso excluirá todos os bancos de dados!!!!
    mv /var/lib/mysql /tmp/mysql
    

  2. 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
    

  3. edite /etc/mysql/mysql.conf.d/mysqld.cnf e adicione a seguinte linha após
    [mysqld]
    
    lower_case_table_names=1
    

  4. 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

  1. (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

  1. Inicie o mysql usando
    sudo service mysql start
    

  2. 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'

  1. Restaure o esquema mysql usando o dump criado na etapa 0.

  2. Execute mysql_upgrade para criar o esquema sys