Mysql
 sql >> база данни >  >> RDS >> Mysql

lower_case_table_names=1 на Ubuntu 18.04 не позволява на mysql да стартира

За да накарате това да работи в MySQL 8.0 и linux, следвайте стъпките по-долу

  1. Архивирайте mysql схемата, преди да изпълните следните стъпки с помощта на

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

и след това спрете mysql да използва

sudo service mysql stop
  1. преместете или премахнете директорията /var/lib/mysql. Това ще изтрие всички бази данни!!!!

    mv /var/lib/mysql /tmp/mysql
    
  2. Създайте нова директория /var/lib/mysql и направете потребител на mysql като собственик

    mkdir /var/lib/mysql
    chown -R mysql:mysql /var/lib/mysql
    chmod 750 /var/lib/mysql
    
  3. редактирайте /etc/mysql/mysql.conf.d/mysqld.cnf и добавете следния ред след

    [mysqld]
    
    lower_case_table_names=1
    
  4. Инициализирайте mysql, като използвате следното

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

Променете файла по подразбиране с действителното местоположение на вашия файл по подразбиране. повече информация за инициализацията на mysql тук:https://dev.mysql.com/doc/refman/8.0/en/data-directory-initialization-mysqld.html

  1. (По избор) Повторете

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

ако собственикът на файловете в /var/lib/mysql не е mysql

  1. Стартирайте mysql с

    sudo service mysql start
    
  2. Ако всичко работи правилно, отворете mysql с

    mysql -u root -p
    

и като изпълните тази заявка

SHOW VARIABLES where Variable_name like 'lower%';

ще получите

'lower_case_table_names', '1'
  1. Възстановете mysql схемата, като използвате дъмп, създаден в стъпка 0.

  2. Изпълнете mysql_upgrade, за да създадете системната схема



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Засяване на SQLite RANDOM()

  2. Как да използвам стойност на низ/колона като константа за интервал от време на mysql (ДЕН, МЕСЕЦ...)?

  3. Как да възстановите дъмп на MySQL от хост към Docker контейнер

  4. Колко лошо е използването на SELECT MAX(id) в MYSQL вместо mysql_insert_id() в PHP?

  5. Как мога да потисна изхода на заглавката на колона за един SQL израз?