Directus: Bases de datos externas

Cómo conectar Directus a una base de datos MySQL, MariaDB o PostgreSQL

👋 ¡Bienvenido a la documentación de Stackhero!

Stackhero ofrece un servicio de Directus cloud listo para producción en solo 2 minutos:

  • Colecciones, elementos, usuarios, roles, peticiones API y transferencias de datos ilimitados
  • Nombre de dominio personalizado con HTTPS integrado para un acceso seguro (por ejemplo, https://cms.tu-empresa.com)
  • Servidor de correo dedicado para envíos ilimitados de emails transaccionales y de notificaciones
  • Caché Redis integrado para un alto rendimiento
  • Rendimiento constante y seguridad reforzada gracias a una infraestructura privada y dedicada
  • Actualizaciones con un solo clic para mantener tu sistema siempre al día con el mínimo esfuerzo

Concéntrate en tu proyecto, no en la configuración: puedes descubrir la solución Directus cloud de Stackhero en solo 5 minutos.

Las instancias de Directus en Stackhero vienen configuradas por defecto con una base de datos SQLite. Esto facilita el inicio, permitiendo explorar la plataforma o realizar pruebas en cuestión de minutos. Sin embargo, para entornos de producción se recomienda una base de datos externa más robusta.

  1. Primero, cree un usuario para Directus en MySQL o MariaDB. Abra phpMyAdmin y navegue a Cuentas de usuario seguido de Agregar cuenta de usuario.

  2. Proporcione un nombre de usuario (por ejemplo, directus). Establezca una contraseña segura haciendo clic en el botón Generar, elija Autenticación MySQL nativa, y marque Crear base de datos con el mismo nombre y otorgar todos los privilegios.

    Creación de usuario Directus en una base de datos MySQL/MariaDBCreación de usuario Directus en una base de datos MySQL/MariaDB

  3. A continuación, inicie sesión en su panel de Stackhero. Seleccione su servicio Directus y haga clic en Configurar.

  4. En el panel de configuración bajo Base de datos, elija MySQL/MariaDB y complete los campos restantes como se muestra en la captura de pantalla a continuación.

    Configuración de MySQL/MariaDB para DirectusConfiguración de MySQL/MariaDB para Directus

  1. Comience creando un usuario para Directus en PostgreSQL. Abra PgAdmin, expanda servidores > postgresql, haga clic derecho en Roles de inicio/grupo, y seleccione Crear > Rol de inicio/grupo....

  2. En el campo Nombre, introduzca directus.

  3. Cambie a la pestaña Definición y establezca una contraseña fuerte y segura.

  4. Luego, vaya a la pestaña Privilegios, marque Puede iniciar sesión, y guarde el nuevo usuario.

    Creación de usuario Directus en una base de datos PostgreSQLCreación de usuario Directus en una base de datos PostgreSQL

  5. Ahora cree una base de datos para Directus. Haga clic derecho en Bases de datos y elija Crear > Base de datos.

  6. Introduzca directus en el campo Base de datos, seleccione directus como propietario, y guarde sus cambios.

    Creación de base de datos Directus en PostgreSQLCreación de base de datos Directus en PostgreSQL

  7. Finalmente, navegue a su panel de Stackhero, seleccione su servicio Directus, y haga clic en Configurar.

  8. Bajo Base de datos, seleccione PostgreSQL y complete los campos adicionales como se muestra a continuación.

    Configuración de PostgreSQL para DirectusConfiguración de PostgreSQL para Directus

Si ve el error 🚨 ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client al usar un servidor MySQL que emplea la nueva autenticación SHA2 en caché, Directus no podrá conectarse correctamente. La solución es cambiar a la autenticación MySQL nativa tradicional.

  1. Si está utilizando phpMyAdmin, navegue a Cuentas de usuario, seleccione su usuario Directus, haga clic en Cambiar contraseña, e introduzca su contraseña. Asegúrese de elegir Autenticación MySQL nativa como método de hash de contraseña.

  2. Alternativamente, puede ejecutar los siguientes comandos SQL usando la CLI. Reemplace directus con su nombre de usuario y mySecretPassword con su contraseña elegida:

    ALTER USER 'directus'@'%' IDENTIFIED WITH 'mysql_native_password' BY 'mySecretPassword';
    FLUSH PRIVILEGES;
    

Siguiendo estos pasos, garantizará que su instalación de Directus en Stackhero utilice una base de datos externa diseñada para un entorno de producción, ofreciendo un rendimiento y una fiabilidad mejorados.