Mysql
 sql >> Base de données >  >> RDS >> Mysql

lower_case_table_names=1 sur Ubuntu 18.04 ne laisse pas mysql démarrer

Pour que cela fonctionne dans MySQL 8.0 et Linux, suivez les étapes ci-dessous

  1. 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
  1. déplacer ou supprimer le répertoire /var/lib/mysql. Cela supprimera toutes les bases de données !!!!

    mv /var/lib/mysql /tmp/mysql
    
  2. 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
    
  3. éditez /etc/mysql/mysql.conf.d/mysqld.cnf et ajoutez la ligne suivante après

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

  1. (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

  1. Démarrez mysql en utilisant

    sudo service mysql start
    
  2. 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'
  1. Restaurez le schéma mysql à l'aide du vidage créé à l'étape 0.

  2. Exécutez mysql_upgrade pour créer le schéma sys