Mysql
 sql >> Database >  >> RDS >> Mysql

lower_case_table_names=1 su Ubuntu 18.04 non consente l'avvio di MySQL

Per farlo funzionare in MySQL 8.0 e Linux, segui i passaggi seguenti

  1. Eseguire il backup dello schema mysql prima di eseguire i seguenti passaggi utilizzando

    mysqldump -h localhost -u root -p mysql> /home/nomeutente/dumps/mysqldump.sql

e poi interrompi MySQL usando

sudo service mysql stop
  1. sposta o rimuovi la directory /var/lib/mysql. Questo cancellerà tutti i database!!!!

    mv /var/lib/mysql /tmp/mysql
    
  2. Crea una nuova directory /var/lib/mysql e imposta l'utente mysql come proprietario

    mkdir /var/lib/mysql
    chown -R mysql:mysql /var/lib/mysql
    chmod 750 /var/lib/mysql
    
  3. modifica /etc/mysql/mysql.conf.d/mysqld.cnf e aggiungi la seguente riga dopo

    [mysqld]
    
    lower_case_table_names=1
    
  4. Inizializza mysql usando quanto segue

    mysqld --defaults-file=/etc/mysql/my.cnf --initialize lower_case_table_names=1 --user=mysql --console
    

Modifica il file di default con la posizione effettiva del tuo file di default. Maggiori informazioni sull'inizializzazione di mysql qui:https://dev.mysql.com/doc/refman/8.0/en/inizializzazione-directory-dati-mysqld.html

  1. (Facoltativo) Ripeti

    chown -R mysql:mysql /var/lib/mysql
    chmod 750 /var/lib/mysql
    

se il proprietario dei file in /var/lib/mysql non è mysql

  1. Avvia MySQL usando

    sudo service mysql start
    
  2. Se tutto ha funzionato correttamente, apri mysql usando

    mysql -u root -p
    

ed eseguendo questa query

SHOW VARIABLES where Variable_name like 'lower%';

otterrai

'lower_case_table_names', '1'
  1. Ripristina lo schema mysql utilizzando il dump creato nel passaggio 0.

  2. Esegui mysql_upgrade per creare lo schema sys