Verknüpfe Deine Anwendungen mit einer MySQL Datenbank.
Bei cloudControl kann jedes Deployment eine hochverfügbare MySQL Datenbank nutzen.
Eine MySQL Datenbank wird durch den Aufruf des addon.add Befehls hinzufügt:
$ cctrlapp app_name/dep_name addon.add mysql.free
Zur Zeit gibt es erst einmal nur das kostenlose mysql.free Paket. Später werden noch weitere Pakete in verschiedenen Größen hinzu kommen.
Die Addons können jederzeit auch wieder entfernt werden, wobei nur für die Zeit Kosten anfallen, in der das Addon dem Deployment hinzugefügt wurde:
$ cctrlapp app_name/dep_name addon.remove mysql.free
Jede Deployment Datenbank ist mittels Master-Slave Replikation besonders ausfallsicher. Sollte der Master ausfallen, schaltet die Plattform automatisch auf den Slave um. Jede Applikation kann trotzdem immer einfach mit 'localhost' verbinden, um die Datenbank zu erreichen. Um den Rest kümmert sich die Plattform.
Hol Dir das Cheat Sheet. Alle 'cctrlapp' und 'cctrluser' Befehle zusammengefasst auf einer DIN A4 Seite.
| Datenbank Server | 127.0.0.1 |
| Datenbankname | dep_id |
| Benutzername | dep_id |
| Passwort | password |
Die Deployment ID (dep_id) und das Passwort können ganz einfach mittels
$ cctrlapp app_name/deployment_name addon mysql.free
angezeigt werden.
Achtung: Als Datenbank Server muss zwingend 127.0.0.1 angegeben werden. 'localhost' kann zur Zeit bei PHP nicht verwendet werden.
Auf den Datenbankservern ist ein stunnel Server aufgesetzt, damit verschlüsselt auf die Datenbank zugegriffen werden kann. Um diesen anzusprechen baut man zuerst mit stunnel eine verschlüsselte Verbindung auf. Der Server leitet diese dann automatisch an den MySQL Server weiter und der stunnel Client bindet sich an einen lokalen Port. Als Endpoint wird die Subdomain (app_name.cloudcontrolled.com) der Applikation angegeben. Dem MySQL Client muss nur mitgeteilt werden, dass er mit localhost und dem entsprechendem Port sprechen muss. Dies ermöglicht die volle Kontrolle über die Daten und das Datenbankschema. Die übrigen Zugangsdaten entsprechen dem internen Zugriff.
Anleitung, Beispiele und Downloads können auf der stunnel Webseite gefunden werden.
Nach Installation der entsprechenden Pakete kann man die Verbindung als normaler User mit
$ stunnel -c -d 4711 -r app_name.cloudcontrolled.com:3307 -P /tmp/stunnel.pid
aufbauen, wobei 4711 der lokale Port ist.
$ mysql -u dep_id -p -h 127.0.0.1 -P 4711 dep_id
Ermöglicht Zugriff auf die Datenbank mittels des MySQL Kommandozeilen Clients.
Über die Kommandozeile können Database Dumps einfach importiert oder exportiert werden. Dazu stehen die folgenden Befehle zur Verfügung:
$ mysql -u dep_id -p -h 127.0.0.1 -P 4711 dep_id < datenbank_dump
Importiert einen SQL-Dump aus der datenbank_dump.sql in die Datenbank des Deployments mit der dep_id auf der Plattform.
$ mysqldump -u dep_id -p -h 127.0.0.1 -P 4711 dep_id > datenbank_dump.sql
Erstellt einen MySQL-Dump der Datenbank des Deployments und speichert die Daten in der Datei datenbank_dump.sql.