sql >> Base de Datos >  >> RDS >> Mysql

lower_case_table_names=1 en Ubuntu 18.04 no permite que mysql se inicie

Para que esto funcione en MySQL 8.0 y Linux, siga los pasos a continuación

  1. Haga una copia de seguridad del esquema mysql antes de ejecutar los siguientes pasos usando

    mysqldump -h localhost -u raíz -p mysql> /home/nombre de usuario/volcados/mysqldump.sql

y luego deja de usar mysql

sudo service mysql stop
  1. mover o eliminar el directorio /var/lib/mysql. ¡Esto eliminará todas las bases de datos!

    mv /var/lib/mysql /tmp/mysql
    
  2. Cree un nuevo directorio /var/lib/mysql y haga que el usuario de mysql sea el propietario

    mkdir /var/lib/mysql
    chown -R mysql:mysql /var/lib/mysql
    chmod 750 /var/lib/mysql
    
  3. edite /etc/mysql/mysql.conf.d/mysqld.cnf y agregue la siguiente línea después de

    [mysqld]
    
    lower_case_table_names=1
    
  4. Inicialice mysql usando lo siguiente

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

Cambie el archivo predeterminado con la ubicación real de su archivo predeterminado. Más información sobre la inicialización de mysql aquí:https://dev.mysql.com/doc/refman/8.0/en/inicialización-del-directorio-de-datos-mysqld.html

  1. (Opcional) Repetir

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

si el propietario de los archivos en /var/lib/mysql no es mysql

  1. Inicie mysql usando

    sudo service mysql start
    
  2. Si todo funcionó correctamente, abra mysql usando

    mysql -u root -p
    

y ejecutando esta consulta

SHOW VARIABLES where Variable_name like 'lower%';

obtendrás

'lower_case_table_names', '1'
  1. Restaure el esquema mysql utilizando el volcado creado en el paso 0.

  2. Ejecute mysql_upgrade para crear el esquema sys