Aby to fungovalo v MySQL 8.0 a linuxu, postupujte podle kroků níže
-
Před provedením následujících kroků pomocí
zazálohujte schéma mysqlmysqldump -h localhost -u root -p mysql> /home/username/dumps/mysqldump.sql
a poté zastavte mysql pomocí
sudo service mysql stop
-
přesunout nebo odebrat adresář /var/lib/mysql. Tímto smažete všechny databáze!!!!
mv /var/lib/mysql /tmp/mysql
-
Vytvořte nový adresář /var/lib/mysql a udělejte uživatele mysql jako vlastníka
mkdir /var/lib/mysql chown -R mysql:mysql /var/lib/mysql chmod 750 /var/lib/mysql
-
upravte /etc/mysql/mysql.conf.d/mysqld.cnf a přidejte následující řádek za
[mysqld] lower_case_table_names=1
-
Inicializujte mysql pomocí následujícího
mysqld --defaults-file=/etc/mysql/my.cnf --initialize lower_case_table_names=1 --user=mysql --console
Změňte výchozí soubor se skutečným umístěním vašeho výchozího souboru. více informací o inicializaci mysql zde:https://dev.mysql.com/doc/refman/8.0/en/data-directory-initialization-mysqld.html
-
(Volitelné) Opakujte
chown -R mysql:mysql /var/lib/mysql chmod 750 /var/lib/mysql
pokud vlastník souborů v /var/lib/mysql není mysql
-
Spusťte mysql pomocí
sudo service mysql start
-
Pokud vše fungovalo správně, otevřete mysql pomocí
mysql -u root -p
a spuštěním tohoto dotazu
SHOW VARIABLES where Variable_name like 'lower%';
dostanete
'lower_case_table_names', '1'
-
Obnovte schéma mysql pomocí výpisu vytvořeného v kroku 0.
-
Spuštěním mysql_upgrade vytvořte schéma sys