Per lavorare con i database, e nel nostro caso con MySQL, all’interno di Google Cloud Platform è bene sapere che si tratta di un servizio a pagamento. Le opzioni disponibile sono MySQL di prima o seconda generazione e PostgreSQL. Determinare quale potrebbe essere il costo ipotetico di questo servizio non è semplicissimo dato che sostanzialmente il costo addebitato è legato al consumo di risorse e quindi non solo allo spazio fisico utilizzato.
Inoltre a seconda dell’hosting scelto, o meglio della sua collocazione geografica, ci sono delle variazioni, in Europa per esempio costa di più che negli Stati Uniti.
Fortunatamente per un primo test è possibile sfruttare, previa registrazione, una prova gratuita. Dalla console scegliamo nel menu a sinistra l'opzione "SQL" e iniziamo la registrazione rispondendo alle domande.
Ci verrà chiesto l’inserimento di un metodo di pagamento, ma questo non comporterà degli addebiti a nostra insaputa, alla fine della registrazione si può vedere che il nostro account di prova ha validità di un anno e come limite di spesa 300 dollari, dovessimo eccedere questa quota verremo avvisati prima in modo da cessare eventualmente le attività se non vogliamo proseguire.
Nella nostra casella di posta troveremo un ulteriore conferma dell’attivazione.
Possiamo procedere con la creazione dell’istanza, una volta selezionato MySQL si avrà la scelta fra MySQL di prima e seconda generazione. La differenza sta nelle versioni di MySQL supportate e le argomentazioni di Google spingono irrevocabilmente verso la release più recente, ciò sia per un discorso prestazionale che economico: nella maggior parte dei casi è più conveniente optare per la seconda generazione.
Il passo seguente consiste nella generazione dell’istanza vera e propria, scegliamo quindi l’ID dell’istanza non modificabile, la password e la scelta dell’area geografica: la prossimità garantisce migliori prestazioni.
Creiamo un utente
Cliccando sul nome dell’istanza entriamo nel pannello di gestione della stessa, la seconda tab ci permette di creare un nuovo utente. Inseriremo user e password e lasceremo libero l’accesso da qualsiasi host, almeno per la nostra prova. Creiamo quindi il database, sarà la tab successiva, che chiameremo "note".
Abbiamo ciò che occorre per tornare al nostro progetto e collegare l’istanza creata. Dalla console digitiamo:
gcloud sql instances describe nome_istanza
Notiamo nell’output della console un parametro importante, il connectionName
:
test-guida-htmlit:europe-west1:test-guida-htmlit-mysql
Iniziamo ora a configurare il nostro progetto partendo dal file app.yaml
nel quale registreremo alcune variabili:
env_variables:
MYSQL_DSN: mysql:unix_socket=/cloudsql/test-guida-htmlit:europe-west1:test-guida-htmlit-mysql;dbname=note
MYSQL_USER: root
MYSQL_PASSWORD: ''
In particolare dobbiamo inserirre il connectionName
ricavato in precedenza, il nome del database e l’utente con il quale vogliamo accedere.
Accediamo al nostro database e creiamo una prima tabella. Dalla shell, per connetterci al database, digitiamo:
gcloud sql connect test-guida-htmlit-mysql --user=test
Ci verrà richiesta la password che andremo ad inserire:
USE note
CREATE TABLE mienote (nome VARCHAR(255), contenuto VARCHAR(255), id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(id));
INSERT INTO mienote (nome, contenuto) values ("lorenzo", "Ciao");
Se vogliamo controllare che sia andato tutto a buon fine possiamo fare una select:
SELECT * FROM mienote;
Potremo quindi cominciare a lavorare con MySQL.