Proyecto

General

Perfil

Actividad #29 » Guía para instalar Keyring en MySQL8.4.md

Reynaldo León, 04/08/2025 03:58

 
  1. Crear el archivo mysqld.my en la ruta global donde se encuentra el .exe de MySQL, con el contenido:

    {
    "read_local_manifest": true
    }
    

    Quedaría algo así:
    "C:\Program Files\MySQL\MySQL Server 8.4\bin\mysqld.my"

  2. Crear el archivo component_keyring_file.cnf en la ruta global donde se encuentran los plugin de MySQL, con el contenido:

     {
     "path": "C:/ProgramData/MySQL/MySQL Server 8.4/keyring/keyring_file",
     "read_only": false
     }
    

    Quedaría algo así:
    "C:\Program Files\MySQL\MySQL Server 8.4\lib\plugin\component_keyring_file.cnf"

  3. Crear el archivo mysqld.my en la ruta local donde se encuentra la data de MySQL, con el contenido:

    {
    "components": "file://component_keyring_file"
    }
    

    Quedaría algo así:
    "C:\ProgramData\MySQL\MySQL Server 8.4\Data\mysqld.my"

  4. Crear el archivo component_keyring_file.cnf en la ruta local donde se encuentran la data de MySQL, con el contenido:

     {
     "path": "C:/ProgramData/MySQL/MySQL Server 8.4/keyring/keyring_file",
     "read_only": false
     }
    

    Quedaría algo así:
    "C:\ProgramData\MySQL\MySQL Server 8.4\Data\component_keyring_file.cnf"

  5. Crear la carpeta Keyring en el directorio marcado dentro de component_keyring_file.cnf:

    • "C:/ProgramData/MySQL/MySQL Server 8.4/keyring/keyring_file"
  6. Reiniciar el servicio de MySQL

    • Buscar los Services de Windows.
    • Buscar el servicio MySQL84.
    • Reiniciar el servicio.
  7. Encriptar una Tabla

    • Acceder a una DB desde Navicat.
    • Abrir una nueva query.
    • Utilizar el comando:

    -- Para encriptar una tabla existente
    ALTER TABLE nombre_tabla ENCRYPTION='Y';

    -- Para crear una tabla encriptada
    CREATE TABLE nombre_tabla (...) ENCRYPTION='Y';

    -- Establece cifrado por defecto para nuevas tablas
    ALTER DATABASE abpmvc DEFAULT ENCRYPTION='Y';

    - Comprobar que la tabla se encriptado correctamente usando el comando:
      ```sql
    SELECT TABLE_NAME, CREATE_OPTIONS 
    FROM INFORMATION_SCHEMA.TABLES 
    WHERE TABLE_NAME = 'nombre_tabla';
    
    (1-1/1)