3. Database, siti e terminali

3.1 I server di database

MySQL e MongoDB del kit: avviarli, le password, le porte, più versioni insieme, phpMyAdmin, mongo-express e l'esploratore dei dati.

Nell'app: «Database»

In breve

  • Il kit ha un server MySQL e uno MongoDB, condivisi da tutti i progetti e raggiungibili solo da questo PC.
  • «Avvia» installa il server se manca, lo accende e genera la password di amministratore.
  • Ogni progetto ha poi il suo database e il suo utente, che si creano dalla pagina del progetto.
  • MySQL si esplora e si modifica con phpMyAdmin, MongoDB con mongo-express, entrambi nel browser.
La pagina Database, server MySQLdati di esempio
La pagina Database, server MySQL

Stato e indirizzo, connessione, versione, porta, «Avvia con Atollo» e le altre versioni installate.

La pagina Database

Nella barra laterale, il riquadro «Server» elenca MySQL e MongoDB con la porta, lo stato e il pulsante «Avvia» o «Ferma». Un clic su un server ne apre la pagina. In cima alla barra: «Aggiorna», «Apri la cartella dei dati» (data\db) e il libro della guida.

StatoSignificato
Fermo (grigio)Il server è spento.
Avvio in corso… (giallo)Il server sta partendo; il kit aspetta che risponda (fino a 90 secondi).
Avviato (verde)Il server risponde su 127.0.0.1 alla sua porta.
Errore (rosso)Non è partito: la pagina mostra l'ultimo errore e il file di log.
Non installato: si installa al primo avvioIl componente non c'è ancora; «Avvia» lo scarica prima.

La pagina di un server

In alto lo stato, l'indirizzo 127.0.0.1:<porta>, la versione e i pulsanti «Avvia» o «Ferma»; per MySQL anche «Apri phpMyAdmin», per MongoDB «Apri mongo-express».

ParteChe cosa contiene
Connessione«Stringa»: l'indirizzo per collegarsi come amministratore (senza password). «Password di root» (MySQL) o «Password di admin» (MongoDB): nascosta, con «Mostra» e «Copia». Prima del primo avvio: «Generata al primo avvio.»
Impostazioni«Versione» (se ne hai più di una; si cambia a server fermo), «Porta» (tra 1024 e 65535, vale dal prossimo avvio) e «Avvia con Atollo» (il server parte da solo all'apertura dell'app).
Altre versioniCompare se hai installato più versioni dello stesso server: ognuna gira sulla sua porta con i suoi dati (vedi sotto).
File«Dati»: la cartella dei dati di quella versione. «Log»: il file con l'output del server.

Esplorare i dati

ServerCome vedi i dati
MySQL«Apri phpMyAdmin». La prima volta il kit installa phpMyAdmin (e PHP se manca), accende MySQL se è spento e apre phpMyAdmin nel browser, già collegato come root. Per un'altra versione c'è «phpMyAdmin su …» nella parte «Altre versioni».
MongoDB«Apri mongo-express». La prima volta il kit installa mongo-express (e Node.js se manca), accende MongoDB se è spento e apre mongo-express nel browser, già collegato come admin: database, collezioni, documenti, indici, importazione ed esportazione. Per un'altra versione c'è «mongo-express su …».
Sotto il cofano: phpMyAdmin e mongo-express

phpMyAdmin gira con il server PHP integrato del kit su un indirizzo di loopback casuale (127.x.y.z, non 127.0.0.1) e su una porta scelta dal sistema, con un gettone nuovo a ogni avvio: senza il gettone risponde 403. Se ne apre uno alla volta; si ferma con la versione di MySQL a cui è collegato o con l'app. La sua lingua è quella di Atollo.

mongo-express è una build di Atollo: compilata in CI dal codice di mongo-express a un commit fissato, pubblicata nelle release di Atollo e controllata col suo SHA-256 prima dell'installazione. Gira col Node.js del kit, allo stesso modo di phpMyAdmin: indirizzo di loopback suo, porta che nessun'altra parte di Atollo usa, gettone nuovo a ogni avvio, 403 senza. La password di admin di MongoDB gli arriva solo nel suo ambiente, mai sulla riga di comando o nel browser. L'interfaccia di mongo-express è in inglese.

Più versioni dello stesso server

Puoi installare più versioni di MySQL o di MongoDB (dalla pagina Strumenti). Il server usa quella scelta in «Versione», di solito la più recente. Le altre compaiono nella parte «Altre versioni»: ciascuna ha la sua porta (3307, 3308… per MySQL, assegnate al primo avvio) e la sua cartella dei dati, e si avvia insieme al server principale se un progetto la usa.

  • Al primo avvio di una versione più recente il kit copia i dati della precedente, che restano com'erano: puoi tornare indietro.
  • Un progetto sceglie la versione del server nella sua sezione «Database»; la porta gli arriva come DB_PORT.
  • Ogni versione tiene la sua porta: cambiare la «Versione» del server non sposta nessuna porta, e le connessioni dei progetti restano giuste.
  • Una porta che ha già un'altra versione, un pool dei server web o un'azione di un progetto, o una fra 7000 e 7099 (dell'editor), viene rifiutata: il messaggio dice di chi è.
  • Due avvii insieme della stessa versione (dalla pagina e da un progetto, per esempio) accendono un solo server, sulla stessa porta.
Sotto il cofano
Che cosaDove
Dati di ogni versionedata\db\mysql\8.4 · data\db\mongodb\8.0
Porte, avvio automatico, versione sceltadata\app\services.json
Password di root e admindata\app\db\secrets.json
Accesso di mysql nella consoledata\app\db\mysql.cnf
Logdata\app\logs\mysql.log · mongodb.log

La cartella data\app\db è leggibile solo dal tuo utente sui dischi NTFS. MySQL usa un file my.cnf scritto dal kit a ogni avvio (solo 127.0.0.1, niente log binario, nomi delle tabelle in minuscolo); MongoDB parte sempre con l'autenticazione. Il comando mysql nella console entra come root solo sulla versione principale.