sql >> Database >  >> RDS >> Mysql

lower_case_table_names=1 op Ubuntu 18.04 laat mysql niet starten

Om dit te laten werken in MySQL 8.0 en linux volgt u de onderstaande stappen

  1. Maak een back-up van het mysql-schema voordat u de volgende stappen uitvoert met

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

en stop dan met het gebruik van mysql

sudo service mysql stop
  1. verplaats of verwijder de map /var/lib/mysql. Hiermee worden alle databases verwijderd!!!!

    mv /var/lib/mysql /tmp/mysql
    
  2. Maak een nieuwe /var/lib/mysql-map en maak mysql-gebruiker als eigenaar

    mkdir /var/lib/mysql
    chown -R mysql:mysql /var/lib/mysql
    chmod 750 /var/lib/mysql
    
  3. bewerk /etc/mysql/mysql.conf.d/mysqld.cnf en voeg de volgende regel toe na

    [mysqld]
    
    lower_case_table_names=1
    
  4. Initialiseer mysql met behulp van het volgende

    mysqld --defaults-file=/etc/mysql/my.cnf --initialize lower_case_table_names=1 --user=mysql --console
    

Wijzig het standaardbestand met de werkelijke locatie van uw standaardbestand. Meer info over mysql-initialisatie hier:https://dev.mysql.com/doc/refman/8.0/en/data-directory-initialization-mysqld.html

  1. (Optioneel) Herhaal

    chown -R mysql:mysql /var/lib/mysql
    chmod 750 /var/lib/mysql
    

als de eigenaar van de bestanden in /var/lib/mysql niet mysql is

  1. Start mysql met

    sudo service mysql start
    
  2. Als alles correct werkte, open dan mysql met

    mysql -u root -p
    

en door deze zoekopdracht uit te voeren

SHOW VARIABLES where Variable_name like 'lower%';

je krijgt

'lower_case_table_names', '1'
  1. Herstel mysql-schema met behulp van de dump gemaakt in stap 0.

  2. Voer mysql_upgrade uit om het sys-schema te maken



  1. Een primaire moet alle kolommen in de partitielocatiefout van de tabel bevatten?

  2. Mysql 1050 Error Table bestaat al, terwijl dat in feite niet het geval is

  3. Android + MySQL met com.mysql.jdbc.Driver

  4. Hoe de primaire sleutelreeks van postgres opnieuw in te stellen wanneer deze niet meer synchroon loopt?