Directus: Zewnętrzne bazy danych

Jak połączyć Directus z bazą danych MySQL, MariaDB lub PostgreSQL

👋 Witamy w dokumentacji Stackhero!

Stackhero oferuje usługę Directus cloud, gotową do użycia w produkcji, w zaledwie 2 minuty:

  • Nieograniczone kolekcje, elementy, użytkownicy, role, zapytania API i transfery
  • Dostosowywana nazwa domeny zabezpieczona HTTPS (na przykład, https://cms.twoja-firma.com)
  • Dedykowany i nieograniczony serwer e-mail w zestawie
  • Serwer cache Redis w zestawie dla wysokiej wydajności
  • Optymalna wydajność i solidne bezpieczeństwo dzięki prywatnej i dedykowanej VM.
  1. Aktualizacje jednym kliknięciem dla bezproblemowej konserwacji

Oszczędzaj czas i upraszczaj sobie życie: wystarczy 5 minut, aby wypróbować rozwiązanie chmurowe Directus Stackhero!

Instancje Directus na Stackhero są domyślnie skonfigurowane z bazą danych SQLite. Ułatwia to szybkie rozpoczęcie pracy, dzięki czemu można eksplorować platformę lub przeprowadzać testy w ciągu kilku minut. Jednak dla środowisk produkcyjnych zaleca się użycie bardziej solidnej zewnętrznej bazy danych.

  1. Najpierw utwórz użytkownika dla Directus na MySQL lub MariaDB. Otwórz phpMyAdmin i przejdź do Konta użytkowników, a następnie Dodaj konto użytkownika.

  2. Podaj nazwę użytkownika (na przykład directus). Ustaw bezpieczne hasło, klikając przycisk Generuj, wybierz Natychmiastowe uwierzytelnianie MySQL i zaznacz Utwórz bazę danych o tej samej nazwie i przyznaj wszystkie uprawnienia.

    Tworzenie użytkownika Directus w bazie danych MySQL/MariaDBTworzenie użytkownika Directus w bazie danych MySQL/MariaDB

  3. Następnie zaloguj się do swojego panelu Stackhero. Wybierz swoją usługę Directus i kliknij Konfiguruj.

  4. W panelu konfiguracji pod Baza danych wybierz MySQL/MariaDB i wypełnij pozostałe pola, jak pokazano na poniższym zrzucie ekranu.

    Konfiguracja MySQL/MariaDB dla DirectusKonfiguracja MySQL/MariaDB dla Directus

  1. Zacznij od utworzenia użytkownika dla Directus na PostgreSQL. Otwórz PgAdmin, rozwiń serwery > postgresql, kliknij prawym przyciskiem na Role logowania/grupy i wybierz Utwórz > Role logowania/grupy....

  2. W polu Nazwa wpisz directus.

  3. Przejdź do zakładki Definicja i ustaw silne, bezpieczne hasło.

  4. Następnie przejdź do zakładki Uprawnienia, zaznacz Może się logować i zapisz nowego użytkownika.

    Tworzenie użytkownika Directus w bazie danych PostgreSQLTworzenie użytkownika Directus w bazie danych PostgreSQL

  5. Teraz utwórz bazę danych dla Directus. Kliknij prawym przyciskiem na Bazy danych i wybierz Utwórz > Bazę danych.

  6. Wpisz directus w polu Baza danych, wybierz directus jako właściciela i zapisz zmiany.

    Tworzenie bazy danych Directus na PostgreSQLTworzenie bazy danych Directus na PostgreSQL

  7. Na koniec przejdź do swojego panelu Stackhero, wybierz swoją usługę Directus i kliknij Konfiguruj.

  8. Pod Baza danych wybierz PostgreSQL i wypełnij dodatkowe pola, jak pokazano poniżej.

    Konfiguracja PostgreSQL dla DirectusKonfiguracja PostgreSQL dla Directus

Jeśli zobaczysz błąd 🚨 ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client podczas korzystania z serwera MySQL, który używa nowego uwierzytelniania SHA2, Directus nie będzie mógł się poprawnie połączyć. Rozwiązaniem jest przejście na tradycyjne natywne uwierzytelnianie MySQL.

  1. Jeśli używasz phpMyAdmin, przejdź do Konta użytkowników, wybierz swojego użytkownika Directus, kliknij Zmień hasło i wprowadź swoje hasło. Upewnij się, że wybierasz Natychmiastowe uwierzytelnianie MySQL jako metodę haszowania hasła.

  2. Alternatywnie, możesz uruchomić następujące polecenia SQL za pomocą CLI. Zamień directus na swoją nazwę użytkownika i mySecretPassword na wybrane hasło:

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

Postępując zgodnie z tymi krokami, zapewnisz, że Twoja instalacja Directus na Stackhero korzysta z zewnętrznej bazy danych zaprojektowanej dla środowiska produkcyjnego, oferując lepszą wydajność i niezawodność.