Aby to działało w MySQL 8.0 i linuxie, wykonaj poniższe czynności
-
Utwórz kopię zapasową schematu mysql przed wykonaniem poniższych kroków za pomocą
mysqldump -h localhost -u root -p mysql> /home/username/dumps/mysqldump.sql
a następnie zatrzymaj mysql za pomocą
sudo service mysql stop
-
przenieś lub usuń katalog /var/lib/mysql. Spowoduje to usunięcie wszystkich baz danych!!!!
mv /var/lib/mysql /tmp/mysql
-
Utwórz nowy katalog /var/lib/mysql i ustaw użytkownika mysql jako właściciela
mkdir /var/lib/mysql chown -R mysql:mysql /var/lib/mysql chmod 750 /var/lib/mysql
-
edytuj /etc/mysql/mysql.conf.d/mysqld.cnf i dodaj następującą linię po
[mysqld] lower_case_table_names=1
-
Zainicjuj mysql za pomocą następującego
mysqld --defaults-file=/etc/mysql/my.cnf --initialize lower_case_table_names=1 --user=mysql --console
Zmień defaults-file na rzeczywistą lokalizację twojego defaults file.więcej informacji na temat inicjalizacji mysql tutaj:https://dev.mysql.com/doc/refman/8.0/en/data-directory-initialization-mysqld.html
-
(Opcjonalnie) Powtórz
chown -R mysql:mysql /var/lib/mysql chmod 750 /var/lib/mysql
jeśli właścicielem plików w /var/lib/mysql nie jest mysql
-
Uruchom mysql za pomocą
sudo service mysql start
-
Jeśli wszystko działało poprawnie, otwórz mysql za pomocą
mysql -u root -p
i uruchamiając to zapytanie
SHOW VARIABLES where Variable_name like 'lower%';
dostaniesz
'lower_case_table_names', '1'
-
Przywróć schemat mysql za pomocą zrzutu utworzonego w kroku 0.
-
Uruchom mysql_upgrade, aby utworzyć schemat sys