Damit dies in MySQL 8.0 und Linux funktioniert, führen Sie die folgenden Schritte aus
-
Sichern Sie das MySQL-Schema, bevor Sie die folgenden Schritte mit
ausführenmysqldump -h localhost -u root -p mysql> /home/username/dumps/mysqldump.sql
und beenden Sie dann mysql mit
sudo service mysql stop
-
Verschieben oder entfernen Sie das Verzeichnis /var/lib/mysql. Dadurch werden alle Datenbanken gelöscht!!!!
mv /var/lib/mysql /tmp/mysql
-
Erstellen Sie ein neues /var/lib/mysql-Verzeichnis und machen Sie mysql-Benutzer zum Eigentümer
mkdir /var/lib/mysql chown -R mysql:mysql /var/lib/mysql chmod 750 /var/lib/mysql
-
Bearbeiten Sie /etc/mysql/mysql.conf.d/mysqld.cnf und fügen Sie die folgende Zeile nach
hinzu[mysqld] lower_case_table_names=1
-
Initialisieren Sie mysql mit folgendem
mysqld --defaults-file=/etc/mysql/my.cnf --initialize lower_case_table_names=1 --user=mysql --console
Ändern Sie die Standarddatei mit dem tatsächlichen Speicherort Ihrer Standarddatei. Weitere Informationen zur MySQL-Initialisierung finden Sie hier:https://dev.mysql.com/doc/refman/8.0/en/data-directory-initialization-mysqld.html
-
(Optional) Wiederholen
chown -R mysql:mysql /var/lib/mysql chmod 750 /var/lib/mysql
wenn der Besitzer der Dateien in /var/lib/mysql nicht mysql ist
-
Starten Sie mysql mit
sudo service mysql start
-
Wenn alles richtig funktioniert hat, öffnen Sie mysql mit
mysql -u root -p
und indem Sie diese Abfrage ausführen
SHOW VARIABLES where Variable_name like 'lower%';
Sie erhalten
'lower_case_table_names', '1'
-
Stellen Sie das MySQL-Schema mit dem in Schritt 0 erstellten Dump wieder her.
-
Führen Sie mysql_upgrade aus, um das sys-Schema zu erstellen