MySQL
Eine MySQL-Datenbank erstellen
- mStudio UI
 - CLI
 - Terraform
 - API
 
Um eine MySQL-Datenbank im mStudio zu erstellen, befolge diese Schritte:
- Navigiere zu dem Projekt, in dem du die Datenbank erstellen möchtest.
 - Wähle im Seitenmenü den Menüpunkt "Datenbanken".
 - Klicke auf den Button "Datenbank erstellen" und wähle "MySQL".
 - Gib eine Beschreibung für die Datenbank ein, wähle die gewünschte Version und lege ein Passwort für den Datenbankbenutzer fest.
 
Nachdem die Installation abgeschlossen ist, beobachte den Host und den Port in den Details unter Verbindungsinformationen. Du benötigst beides für die Konfiguration deines Systems.
Um eine MySQL-Datenbank über die CLI zu erstellen, führe die folgenden Befehle aus:
$ mw database mysql create --description "My MySQL database" --version 8.0
Dieser Befehl fordert dich auf, ein Passwort für den Datenbankbenutzer einzugeben. Um die Aufforderung zu überspringen, verwende die Option --password (sei vorsichtig, da das Passwort in deiner Shell-History gespeichert wird) oder setze zuerst die Umgebungsvariable MYSQL_PWD:
$ read -s MYSQL_PWD
$ export MYSQL_PWD
$ mw database mysql create ...
Es gibt zusätzliche Flags, die du angeben kannst, um zusätzliche Optionen festzulegen:
--character-setund--collationum den Zeichensatz und die Kollation für die Datenbank festzulegen. Diese sind standardmäßig aufutf8mb4undutf8mb4_unicode_cifestgelegt. Normalerweise sollte es nur wenige Gründe geben, diese zu ändern, außer bei der Migration von einer vorhandenen Datenbank.--user-access-levelerlaubt dir, die Berechtigungen des Datenbankbenutzers einzuschränken. Standardmäßig ist diesfull, was alle Berechtigungen gewährt. Du kannst auchreadonlywählen.--user-externalerlaubt dir, einen Benutzer zu erstellen, der sich von außerhalb der mittwald-Plattform verbinden kann. Dies ist standardmäßig deaktiviert.
Nachdem die Installation abgeschlossen ist, verwende den Befehl mw database mysql get, um die Verbindungsinformationen zu beobachten.
Um eine MySQL-Datenbank mit Terraform zu erstellen, kannst du das folgende Beispiel verwenden:
variable "database_password" {
  type      = string
  sensitive = true
}
resource "mittwald_mysql_database" "example_database" {
  project_id  = mittwald_project.example.id
  version     = "8.4"
  description = "Example"
  character_settings = {
    character_set = "utf8mb4"
    collation     = "utf8mb4_general_ci"
  }
  user = {
    access_level        = "full"
    password_wo         = var.database_password
    password_wo_version = 1
    external_access     = false
  }
}
Du kannst auch die mittwald_mysql_password [Ephemeral Resource][terraform-ephemeral] verwenden um ein Passwort dynamisch zu generieren. Beachte, dass du in diesem Fall dieses Passwort auch sicher in einem Secret Manager speichern solltest, da es danach nicht mehr abrufbar ist.
ephemeral "mittwald_mysql_password" "example_database_password" {
  length = 24
}
resource "mittwald_mysql_database" "example_database" {
  // ...
  user = {
    password_wo         = ephemeral.mittwald_mysql_password.example_database_password.password
    password_wo_version = 1
    // ...
  }
}
Nachdem du die Ressource erstellt hast, kannst du die folgenden zusätzlichen Eigenschaften aus dem Ressourcenstatus extrahieren:
mittwald_mysql_database.[name].hostenthält den Hostnamen der MySQL-Datenbank.mittwald_mysql_database.[name].user.nameenthält den (erstellten) Benutzernamen
Betrieb
Managed Backup und Wiederherstellung
Die mittwald-Cloud-Plattform erstellt in regelmäßigen Abständen automatisch Backups deiner Projekte und ihrer Datenbanken. Du kannst die verfügbaren Backups jederzeit über die mStudio-Benutzeroberfläche oder das mw CLI einsehen, indem du den Befehl mw backup list verwendest. Du kannst auch manuell ein Backup erstellen, indem du den Befehl mw backup create ausführst:
$ mw backup create --wait --expires 30d
Um die Inhalte einer einzelnen MySQL-Datenbank wiederherzustellen, kannst du die folgenden Schritte befolgen:
- 
Lade ein Backup auf deinen lokalen Rechner herunter:
Local shell session$ mw backup download <backup-id> --format tar --output backup.tar.gz - 
Nachdem du das Backup heruntergeladen hast, kannst du den Inhalt der Datenbank aus dem heruntergeladenen Archiv extrahieren:
Local shell session$ database_id=<database-id>
$ tar xfz backup.tar.gz dbdump-${database_id/_/-} - 
Stelle das Backup mit dem Befehl
mw database mysql importwieder her. Dafür musst du einen SSH-Schlüssel auf deinem lokalen Rechner eingerichtet haben, der auch mit deinem mStudio-Benutzerkonto verknüpft ist.Local shell session$ database_id=<database-id>
$ mw database mysql import ${database_id} --input dbdump-${database_id/_/-}/*.sql.gz --gzip 
Manuelle Sicherung und Wiederherstellung
Du kannst das mw CLI verwenden, um manuell Backups deiner MySQL-Datenbank zu erstellen (und wiederherzustellen). Als Voraussetzung musst du einen SSH-Schlüssel auf deinem lokalen Rechner eingerichtet haben, der auch mit deinem mStudio-Benutzerkonto verknüpft ist.
Um ein Backup zu erstellen, führe den folgenden Befehl aus:
$ mw database mysql dump <database-id> --output dump.sql.gz --gzip
Ersetze in diesem Befehl <database-id> durch die ID der MySQL-Datenbank, die du sichern möchtest. Der --gzip-Flag komprimiert die Backup-Datei, was Speicherplatz sparen und die Übertragungszeiten reduzieren kann.
Um ein Backup wiederherzustellen, führe den folgenden Befehl aus:
$ mw database mysql import <database-id> --input dump.sql.gz --gzip