Pour que cela fonctionne dans MySQL 8.0 et Linux, suivez les étapes ci-dessous
-
Sauvegardez le schéma mysql avant d'exécuter les étapes suivantes à l'aide de
mysqldump -h localhost -u root -p mysql> /home/nom d'utilisateur/dumps/mysqldump.sql
puis arrêtez mysql en utilisant
sudo service mysql stop
-
déplacer ou supprimer le répertoire /var/lib/mysql. Cela supprimera toutes les bases de données !!!!
mv /var/lib/mysql /tmp/mysql
-
Créez un nouveau répertoire /var/lib/mysql et faites de l'utilisateur mysql le propriétaire
mkdir /var/lib/mysql chown -R mysql:mysql /var/lib/mysql chmod 750 /var/lib/mysql
-
éditez /etc/mysql/mysql.conf.d/mysqld.cnf et ajoutez la ligne suivante après
[mysqld] lower_case_table_names=1
-
Initialisez mysql en utilisant ce qui suit
mysqld --defaults-file=/etc/mysql/my.cnf --initialize lower_case_table_names=1 --user=mysql --console
Modifiez le fichier par défaut avec l'emplacement réel de votre fichier par défaut. Plus d'informations sur l'initialisation mysql ici :https://dev.mysql.com/doc/refman/8.0/en/data-directory-initialization-mysqld.html
-
(Facultatif) Répéter
chown -R mysql:mysql /var/lib/mysql chmod 750 /var/lib/mysql
si le propriétaire des fichiers dans /var/lib/mysql n'est pas mysql
-
Démarrez mysql en utilisant
sudo service mysql start
-
Si tout a fonctionné correctement, ouvrez mysql en utilisant
mysql -u root -p
et en exécutant cette requête
SHOW VARIABLES where Variable_name like 'lower%';
vous obtiendrez
'lower_case_table_names', '1'
-
Restaurez le schéma mysql à l'aide du vidage créé à l'étape 0.
-
Exécutez mysql_upgrade pour créer le schéma sys