sql >> Databáze >  >> RDS >> Mysql

Lower_case_table_names=1 na Ubuntu 18.04 neumožňuje spuštění mysql

Aby to fungovalo v MySQL 8.0 a linuxu, postupujte podle kroků níže

  1. Před provedením následujících kroků pomocí

    zazálohujte schéma mysql

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

a poté zastavte mysql pomocí

sudo service mysql stop
  1. přesunout nebo odebrat adresář /var/lib/mysql. Tímto smažete všechny databáze!!!!

    mv /var/lib/mysql /tmp/mysql
    
  2. 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
    
  3. upravte /etc/mysql/mysql.conf.d/mysqld.cnf a přidejte následující řádek za

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

  1. (Volitelné) Opakujte

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

pokud vlastník souborů v /var/lib/mysql není mysql

  1. Spusťte mysql pomocí

    sudo service mysql start
    
  2. 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'
  1. Obnovte schéma mysql pomocí výpisu vytvořeného v kroku 0.

  2. Spuštěním mysql_upgrade vytvořte schéma sys



  1. Jak mohu použít mysql v C++?

  2. V uživatelské tabulce nelze najít žádný odpovídající řádek

  3. mysql po vložení spouštěče, který aktualizuje sloupec jiné tabulky

  4. Mohu vytvořit dynamický soubor .htaccess?