Zum Hauptinhalt springen

Erstellen einer MySQL-Datenbank über die API

Dieser Artikel beschreibt, wie Du eine MySQL-Datenbank über die API erstellst.

Voraussetzungen

Um eine MySQL-Datenbank zu erstellen, benötigst Du Zugriff auf ein Projekt. Wie Du ein Projekt erstellst, erfährst Du hier. Du benötigst die Projekt-ID für die folgenden Schritte.

Liste verfügbarer MySQL-Versionen

Sende eine Anfrage an den GET/v2/mysql-versions/-Endpunkt, um eine Liste der verfügbaren MySQL-Versionen zu erhalten.

Jedes zurückgegebene Versionsobjekt enthält die folgenden Eigenschaften:

  • id enthält die eindeutige Kennung der Version
  • number enthält die Versionsnummer (z. B. "8.0")
  • name enthält einen für Menschen lesbaren Namen für die Version
  • disabled gibt an, ob die Version zur Verwendung verfügbar ist

Wichtig: Bei der Auswahl einer Version für Deine Datenbank musst Du eine Version wählen, bei der disabled den Wert false hat.

Erstellen einer MySQL-Datenbank

Um eine MySQL-Datenbank zu erstellen, sende eine Anfrage an den POST/v2/projects/{projectId}/mysql-databases/-Endpunkt. Der Anfrage-Body muss ein JSON-Objekt mit den folgenden Eigenschaften enthalten:

Datenbank-Eigenschaften

  • database.description sollte eine für Menschen lesbare Beschreibung der Datenbank enthalten. Dies ist ein Pflichtwert.
  • database.version sollte die Versionsnummer der Datenbank enthalten (z. B. "8.0"). Dies ist ein Pflichtwert und muss mit der number-Eigenschaft einer Version übereinstimmen, die vom Endpunkt GET/v2/mysql-versions/ zurückgegeben wird (nicht mit der id-Eigenschaft).
  • database.characterSettings (optional) ermöglicht es Dir, den Zeichensatz und die Sortierung für die Datenbank anzugeben.

Benutzer-Eigenschaften

Beim Erstellen einer MySQL-Datenbank musst Du auch einen initialen Benutzer erstellen. Die Benutzer-Eigenschaften umfassen:

  • user.password sollte das Passwort für den Datenbankbenutzer enthalten. Dies ist ein Pflichtwert.
  • user.accessLevel muss für den initialen Benutzer auf "full" gesetzt werden. Dies ist ein Pflichtwert.
  • user.externalAccess (optional) gibt an, ob der Benutzer von außerhalb der Hosting-Umgebung auf die Datenbank zugreifen kann.
  • user.accessIpMask (optional) legt IP-Adressbeschränkungen für den externen Zugriff fest.
POST /v2/projects/DEINE_PROJEKT_ID/mysql-databases HTTP/1.1
Host: api.mittwald.de
Content-Type: application/json

{
"database": {
"description": "Meine Anwendungsdatenbank",
"version": "8.0",
"characterSettings": {
"characterSet": "utf8mb4",
"collation": "utf8mb4_unicode_ci"
}
},
"user": {
"password": "dein-sicheres-passwort",
"accessLevel": "full",
"externalAccess": true,
"accessIpMask": "0.0.0.0/0"
}
}
See full request reference at: POST/v2/projects/{projectId}/mysql-databases/

Die Antwort enthält die folgenden Eigenschaften:

  • id enthält die ID der erstellten Datenbank.
  • userId enthält die ID des erstellten Benutzers.

Überwachen der Datenbankbereitschaft

Nach dem Erstellen einer Datenbank kann es einige Augenblicke dauern, bis sie einsatzbereit ist. Du kannst den Bereitschaftsstatus überwachen, indem Du eine Anfrage an den GET/v2/mysql-databases/{mysqlDatabaseId}/-Endpunkt sendest.

Die Antwort enthält ein mainUser-Objekt mit einem status-Feld. Dieses Feld kann die folgenden Werte haben:

  • pending - Der Benutzer wird erstellt
  • ready - Der Benutzer ist bereit und die Datenbank kann verwendet werden
  • error - Bei der Benutzererstellung ist ein Fehler aufgetreten
  • terminating - Der Benutzer wird gelöscht
  • disabled - Der Benutzer wurde deaktiviert

Wichtig: Warte, bis das Feld mainUser.status den Wert "ready" hat, bevor Du versuchst, Dich mit der Datenbank zu verbinden.

Zugriff auf die Datenbank

Sobald die Datenbank bereit ist, kannst Du die Verbindungsinformationen abrufen, indem Du eine Anfrage an den GET/v2/mysql-databases/{mysqlDatabaseId}/-Endpunkt sendest.

Die Antwort enthält unter anderem die folgenden Werte:

  • hostname enthält den Hostnamen des Datenbankservers. Du kannst diesen Wert verwenden, um Dich von Deiner Hosting-Umgebung aus mit der Datenbank zu verbinden.
  • name enthält den Namen der Datenbank.
  • mainUser.name enthält den Benutzernamen für die Datenbankauthentifizierung.
  • characterSettings ermöglicht es Dir, die Zeichensatz- und Sortierungseinstellungen einzusehen, die auf Deine Datenbank angewendet wurden.

Hinweis: Das Passwort wird bei der Datenbankerstellung festgelegt und kann nicht über die API abgerufen werden. Um das Passwort zu ändern, verwende den PATCH/v2/mysql-users/{mysqlUserId}/password/-Endpunkt.