3. Datenbanken, Websites und Terminals

3.1 Die Datenbankserver

MySQL und MongoDB des Kits: sie starten, die Passwörter, die Ports, mehrere Versionen gleichzeitig, phpMyAdmin, mongo-express und der Daten-Explorer.

In der App: «Datenbanken»

Kurz gesagt

  • Das Kit hat einen MySQL- und einen MongoDB-Server, die alle Projekte gemeinsam nutzen und die nur von diesem PC aus erreichbar sind.
  • „Starten“ installiert den Server, falls er fehlt, schaltet ihn ein und erzeugt das Administratorpasswort.
  • Jedes Projekt hat dann eine eigene Datenbank und einen eigenen Benutzer, die du auf der Seite des Projekts erstellst.
  • MySQL durchsuchst und bearbeitest du mit phpMyAdmin, MongoDB mit mongo-express, beide im Browser.
Die Seite Datenbanken, MySQL-ServerBeispieldaten
Die Seite Datenbanken, MySQL-Server

Status und Adresse, Verbindung, Version, Port, „Mit Atollo starten“ und die anderen installierten Versionen.

Die Seite Datenbanken

In der Seitenleiste listet der Bereich „Server“ MySQL und MongoDB mit Port, Status und der Schaltfläche „Starten“ oder „Beenden“ auf. Ein Klick auf einen Server öffnet seine Seite. Oben in der Leiste: „Aktualisieren“, „Datenordner öffnen“ (data\db) und das Buch der Anleitung.

StatusBedeutung
Gestoppt (grau)Der Server ist ausgeschaltet.
Wird gestartet… (gelb)Der Server startet; das Kit wartet, bis er antwortet (bis zu 90 Sekunden).
Läuft (grün)Der Server antwortet auf 127.0.0.1 an seinem Port.
Fehler (rot)Er ist nicht gestartet: Die Seite zeigt den letzten Fehler und die Protokolldatei.
Nicht installiert: wird beim ersten Start installiertDie Komponente ist noch nicht vorhanden; „Starten“ lädt sie zuerst herunter.

Die Seite eines Servers

Oben: der Status, die Adresse 127.0.0.1:<Port>, die Version und die Schaltflächen „Starten“ oder „Beenden“; bei MySQL auch „phpMyAdmin öffnen“, bei MongoDB „mongo-express öffnen“.

TeilWas er enthält
Verbindung„Zeichenfolge“: die Adresse, um sich als Administrator zu verbinden (ohne Passwort). „Passwort von root“ (MySQL) oder „Passwort von admin“ (MongoDB): verborgen, mit „Anzeigen“ und „Kopieren“. Vor dem ersten Start: „Wird beim ersten Start erzeugt.“
Einstellungen„Version“ (wenn du mehrere hast; sie wird bei gestopptem Server geändert), „Port“ (zwischen 1024 und 65535, gilt ab dem nächsten Start) und „Mit Atollo starten“ (der Server startet von selbst, wenn die App geöffnet wird).
Weitere VersionenErscheint, wenn du mehrere Versionen desselben Servers installiert hast: Jede läuft auf ihrem eigenen Port mit ihren eigenen Daten (siehe unten).
Dateien„Daten“: der Datenordner dieser Version. „Protokoll“: die Datei mit der Ausgabe des Servers.

Die Daten durchsuchen

ServerWie du die Daten siehst
MySQL„phpMyAdmin öffnen“. Beim ersten Mal installiert das Kit phpMyAdmin (und PHP, falls es fehlt), schaltet MySQL ein, falls es aus ist, und öffnet phpMyAdmin im Browser, bereits als root verbunden. Für eine andere Version gibt es „phpMyAdmin auf …“ im Teil „Weitere Versionen“.
MongoDB„mongo-express öffnen“. Beim ersten Mal installiert das Kit mongo-express (und Node.js, falls es fehlt), schaltet MongoDB ein, falls es aus ist, und öffnet mongo-express im Browser, bereits als admin verbunden: Datenbanken, Collections, Dokumente, Indizes, Import und Export. Für eine andere Version gibt es „mongo-express auf …“.
Unter der Haube: phpMyAdmin und mongo-express

phpMyAdmin läuft mit dem integrierten PHP-Server des Kits auf einer zufälligen Loopback-Adresse (127.x.y.z, nicht 127.0.0.1) und auf einem vom System gewählten Port, mit einem neuen Token bei jedem Start: Ohne Token antwortet es mit 403. Es ist immer nur eines geöffnet; es stoppt mit der MySQL-Version, mit der es verbunden ist, oder mit der App. Seine Sprache ist die von Atollo.

mongo-express ist ein Build von Atollo: in der CI aus dem Code von mongo-express bei einem festgelegten Commit gebaut, in den Releases von Atollo veröffentlicht und vor der Installation mit seinem SHA-256 geprüft. Es läuft mit dem Node.js des Kits, genauso wie phpMyAdmin: eigene Loopback-Adresse, ein Port, den kein anderer Teil von Atollo nutzt, ein neues Token bei jedem Start, 403 ohne. Das admin-Passwort von MongoDB erreicht es nur in seiner Umgebung, nie auf der Befehlszeile oder im Browser. Die Oberfläche von mongo-express ist auf Englisch.

Mehrere Versionen desselben Servers

Du kannst mehrere Versionen von MySQL oder MongoDB installieren (auf der Seite Werkzeuge). Der Server verwendet die unter „Version“ gewählte, meist die neueste. Die anderen erscheinen im Teil „Weitere Versionen“: Jede hat ihren eigenen Port (3307, 3308… bei MySQL, beim ersten Start vergeben) und ihren eigenen Datenordner und startet zusammen mit dem Hauptserver, wenn ein Projekt sie verwendet.

  • Beim ersten Start einer neueren Version kopiert das Kit die Daten der vorherigen, die unverändert bleiben: Du kannst zurückwechseln.
  • Ein Projekt wählt die Serverversion in seinem Abschnitt „Datenbanken“; den Port erhält es als DB_PORT.
  • Jede Version behält ihren Port: Wenn du die „Version“ des Servers wechselst, verschiebt sich kein Port, und die Verbindungen der Projekte bleiben richtig.
  • Ein Port, den schon eine andere Version, ein Webserver-Pool oder eine Projektaktion hat, oder einer zwischen 7000 und 7099 (die des Editors), wird abgelehnt: Die Meldung sagt, wem er gehört.
  • Zwei gleichzeitige Starts derselben Version (zum Beispiel von der Seite und aus einem Projekt) schalten einen einzigen Server ein, auf demselben Port.
Unter der Haube
WasWo
Daten jeder Versiondata\db\mysql\8.4 · data\db\mongodb\8.0
Ports, automatischer Start, gewählte Versiondata\app\services.json
Passwörter für root und admindata\app\db\secrets.json
Anmeldung von mysql in der Konsoledata\app\db\mysql.cnf
Protokolledata\app\logs\mysql.log · mongodb.log

Der Ordner data\app\db ist auf NTFS-Laufwerken nur für deinen Benutzer lesbar. MySQL verwendet eine my.cnf-Datei, die das Kit bei jedem Start schreibt (nur 127.0.0.1, kein Binärlog, Tabellennamen in Kleinbuchstaben); MongoDB startet immer mit Authentifizierung. Der Befehl mysql in der Konsole meldet sich nur bei der Hauptversion als root an.