Följ stegen nedan för att få detta att fungera i MySQL 8.0 och linux.
-
Säkerhetskopiera mysql-schemat innan du utför följande steg med
mysqldump -h localhost -u root -p mysql> /home/användarnamn/dumps/mysqldump.sql
och sluta sedan använda mysql
sudo service mysql stop
-
flytta eller ta bort katalogen /var/lib/mysql. Detta kommer att radera alla databaser!!!!
mv /var/lib/mysql /tmp/mysql
-
Skapa en ny /var/lib/mysql-katalog och gör mysql-användare som ägare
mkdir /var/lib/mysql chown -R mysql:mysql /var/lib/mysql chmod 750 /var/lib/mysql
-
redigera /etc/mysql/mysql.conf.d/mysqld.cnf och lägg till följande rad efter
[mysqld] lower_case_table_names=1
-
Initiera mysql med följande
mysqld --defaults-file=/etc/mysql/my.cnf --initialize lower_case_table_names=1 --user=mysql --console
Ändra standardfilen med den faktiska platsen för din standardfil. Mer information om mysql-initiering här:https://dev.mysql.com/doc/refman/8.0/en/data-directory-initialization-mysqld.html
-
(Valfritt) Upprepa
chown -R mysql:mysql /var/lib/mysql chmod 750 /var/lib/mysql
om ägaren till filerna i /var/lib/mysql inte är mysql
-
Starta mysql med
sudo service mysql start
-
Om allt fungerade korrekt, öppna mysql med
mysql -u root -p
och genom att köra den här frågan
SHOW VARIABLES where Variable_name like 'lower%';
du kommer att få
'lower_case_table_names', '1'
-
Återställ mysql-schemat med dumpen som skapades i steg 0.
-
Kör mysql_upgrade för att skapa sys-schemat