Per farlo funzionare in MySQL 8.0 e Linux, segui i passaggi seguenti
-
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
-
sposta o rimuovi la directory /var/lib/mysql. Questo cancellerà tutti i database!!!!
mv /var/lib/mysql /tmp/mysql
-
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
-
modifica /etc/mysql/mysql.conf.d/mysqld.cnf e aggiungi la seguente riga dopo
[mysqld] lower_case_table_names=1
-
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
-
(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
-
Avvia MySQL usando
sudo service mysql start
-
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'
-
Ripristina lo schema mysql utilizzando il dump creato nel passaggio 0.
-
Esegui mysql_upgrade per creare lo schema sys