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/-Endpunkt, um eine Liste der verfügbaren MySQL-Versionen zu erhalten.
Jedes zurückgegebene Versionsobjekt enthält die folgenden Eigenschaften:
identhält die eindeutige Kennung der Versionnumberenthält die Versionsnummer (z. B. "8.0")nameenthält einen für Menschen lesbaren Namen für die Versiondisabledgibt 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/-Endpunkt. Der Anfrage-Body muss ein JSON-Objekt mit den folgenden Eigenschaften enthalten:
Datenbank-Eigenschaften
database.descriptionsollte eine für Menschen lesbare Beschreibung der Datenbank enthalten. Dies ist ein Pflichtwert.database.versionsollte die Versionsnummer der Datenbank enthalten (z. B. "8.0"). Dies ist ein Pflichtwert und muss mit dernumber-Eigenschaft einer Version übereinstimmen, die vom Endpunkt GET/zurückgegeben wird (nicht mit derv2/ mysql-versions/ 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.passwordsollte das Passwort für den Datenbankbenutzer enthalten. Dies ist ein Pflichtwert.user.accessLevelmuss 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"
}
}
/v2/projects/{projectId}/mysql-databases/ Die Antwort enthält die folgenden Eigenschaften:
identhält die ID der erstellten Datenbank.userIdenthä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/-Endpunkt sendest.
Die Antwort enthält ein mainUser-Objekt mit einem status-Feld. Dieses Feld kann die folgenden Werte haben:
pending- Der Benutzer wird erstelltready- Der Benutzer ist bereit und die Datenbank kann verwendet werdenerror- Bei der Benutzererstellung ist ein Fehler aufgetretenterminating- Der Benutzer wird gelöschtdisabled- 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/-Endpunkt sendest.
Die Antwort enthält unter anderem die folgenden Werte:
hostnameenthält den Hostnamen des Datenbankservers. Du kannst diesen Wert verwenden, um Dich von Deiner Hosting-Umgebung aus mit der Datenbank zu verbinden.nameenthält den Namen der Datenbank.mainUser.nameenthält den Benutzernamen für die Datenbankauthentifizierung.characterSettingsermö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/-Endpunkt.