Directus: Bases de dados externas

Como conectar o Directus a uma base de dados MySQL, MariaDB ou PostgreSQL

👋 Bem-vindo à documentação da Stackhero!

A Stackhero oferece um serviço Directus cloud, pronto para uso em produção, em apenas 2 minutos:

  • Coleções, itens, utilizadores, funções, pedidos API e transferências ilimitados
  • Nome de domínio personalizável seguro com HTTPS (por exemplo, https://cms.sua-empresa.com)
  • Servidor de email dedicado e ilimitado incluído
  • Servidor de cache Redis incluído para alto desempenho
  • Desempenho ótimo e segurança robusta impulsionados por uma VM privada e dedicada.
  1. Atualizações com um clique para uma manutenção sem esforço

Poupe tempo e simplifique a sua vida: leva apenas 5 minutos para experimentar a solução cloud Directus da Stackhero!

As instâncias Directus na Stackhero vêm configuradas por defeito com uma base de dados SQLite. Isto facilita o início, permitindo explorar a plataforma ou realizar testes em poucos minutos. No entanto, para ambientes de produção, recomenda-se uma base de dados externa mais robusta.

  1. Primeiro, crie um utilizador para o Directus no MySQL ou MariaDB. Abra o phpMyAdmin e navegue até Contas de utilizador seguido de Adicionar conta de utilizador.

  2. Forneça um nome de utilizador (por exemplo, directus). Defina uma palavra-passe segura clicando no botão Gerar, escolha Autenticação MySQL nativa, e marque Criar base de dados com o mesmo nome e conceder todos os privilégios.

    Criação de utilizador Directus numa base de dados MySQL/MariaDBCriação de utilizador Directus numa base de dados MySQL/MariaDB

  3. Em seguida, faça login no seu painel de controlo Stackhero. Selecione o seu serviço Directus e clique em Configurar.

  4. No painel de configuração sob Base de dados, escolha MySQL/MariaDB e complete os campos restantes conforme mostrado na imagem abaixo.

    Configuração de MySQL/MariaDB para DirectusConfiguração de MySQL/MariaDB para Directus

  1. Comece por criar um utilizador para o Directus no PostgreSQL. Abra o PgAdmin, expanda servidores > postgresql, clique com o botão direito em Login/Group Roles, e selecione Criar > Login/Group Role....

  2. No campo Nome, insira directus.

  3. Mude para o separador Definição e defina uma palavra-passe forte e segura.

  4. Depois, vá ao separador Privilégios, marque Pode fazer login, e guarde o novo utilizador.

    Criação de utilizador Directus numa base de dados PostgreSQLCriação de utilizador Directus numa base de dados PostgreSQL

  5. Agora crie uma base de dados para o Directus. Clique com o botão direito em Bases de dados e escolha Criar > Base de dados.

  6. Insira directus no campo Base de dados, selecione directus como proprietário, e guarde as suas alterações.

    Criação de base de dados Directus no PostgreSQLCriação de base de dados Directus no PostgreSQL

  7. Finalmente, navegue até ao seu painel de controlo Stackhero, selecione o seu serviço Directus, e clique em Configurar.

  8. Sob Base de dados, selecione PostgreSQL e preencha os campos adicionais conforme mostrado abaixo.

    Configuração de PostgreSQL para DirectusConfiguração de PostgreSQL para Directus

Se vir o erro 🚨 ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client ao usar um servidor MySQL que utiliza o novo protocolo de autenticação SHA2 em cache, o Directus não conseguirá conectar-se corretamente. A solução é mudar para a autenticação MySQL nativa tradicional.

  1. Se estiver a usar o phpMyAdmin, navegue até Contas de utilizador, selecione o seu utilizador Directus, clique em Alterar palavra-passe, e insira a sua palavra-passe. Certifique-se de escolher Autenticação MySQL nativa como método de hashing da palavra-passe.

  2. Alternativamente, pode executar os seguintes comandos SQL usando a CLI. Substitua directus pelo seu nome de utilizador e mySecretPassword pela palavra-passe escolhida:

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

Seguindo estes passos, garantirá que a sua instalação Directus na Stackhero utiliza uma base de dados externa adequada para um ambiente de produção, oferecendo melhor desempenho e fiabilidade.