Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Lower_case_table_names=1 unter Ubuntu 18.04 lässt mysql nicht starten

Damit dies in MySQL 8.0 und Linux funktioniert, führen Sie die folgenden Schritte aus

  1. Sichern Sie das MySQL-Schema, bevor Sie die folgenden Schritte mit

    ausführen

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

und beenden Sie dann mysql mit

sudo service mysql stop
  1. Verschieben oder entfernen Sie das Verzeichnis /var/lib/mysql. Dadurch werden alle Datenbanken gelöscht!!!!

    mv /var/lib/mysql /tmp/mysql
    
  2. 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
    
  3. Bearbeiten Sie /etc/mysql/mysql.conf.d/mysqld.cnf und fügen Sie die folgende Zeile nach

    hinzu
    [mysqld]
    
    lower_case_table_names=1
    
  4. 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

  1. (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

  1. Starten Sie mysql mit

    sudo service mysql start
    
  2. 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'
  1. Stellen Sie das MySQL-Schema mit dem in Schritt 0 erstellten Dump wieder her.

  2. Führen Sie mysql_upgrade aus, um das sys-Schema zu erstellen