Dietro ogni sito web c’è un database, e spesso gira su MySQL. Imparare a configurare il server è spesso il primo vero test per un nuovo webmaster o sviluppatore, e MySQL Community Server offre una soluzione gratuita e open source per iniziare.

Cosa rende MySQL Community Server il miglior software di database? Quale altro software regge il confronto? E come farlo funzionare correttamente sul vostro server web?

In questo articolo risponderemo a tutte queste domande, e non solo. Imparerete tutto quello che c’è da sapere per configurare un MySQL Community Server sulla vostra macchina.

Cominciamo!

Cos’è MySQL Community Server?

Quasi tutti i siti web richiedono un database. Quelli che non ne hanno bisogno sono piccoli siti con pagine statiche o poco più. Un database semplifica la gestione di grandi quantità di contenuti in modo strutturato e accessibile.

WordPress database in Adminer
Un database WordPress con le sue righe e tabelle.

In WordPress, il database memorizza interi post, pagine e altri dati personalizzati come tag e commenti. Inoltre, se i dati possono essere modificati, aggiunti o cancellati, è probabile che siano memorizzati in un database. Quindi è facile immaginare quanti dati passano attraverso un database.

SQL sta per Structured Query Language, ed è un linguaggio web simile a JavaScript o HTML. SQL è utilizzato principalmente per gestire e manipolare i database. Anche se esistono alternative, SQL è la soluzione più popolare nella stragrande maggioranza dei siti web.

Anche se SQL è il linguaggio che utilizzate per inviare comandi al vostro database, vi servirà un un sistema di gestione del database per gestire tutte le complessità del database. Ed è qui che entra in gioco MySQL.

Essendo il più popolare sistema di gestione di database sul mercato, MySQL è il migliore per gli sviluppatori e gli amministratori web.

MySQL Community Server è Gratuito?

Anche se esiste una versione enterprise a pagamento di MySQL, tutte le funzionalità principali che probabilmente utilizzerete sono nella MySQL Community Edition. Inoltre, è gratuito per tutti i suoi 20+ sistemi operativi supportati e non ci sono costi nascosti o trabocchetti improvvisi.

Essenzialmente, MySQL Community Server viene fornito senza vincoli!

MySQL Community Downloads
MySQL Community Downloads

Inoltre, è disponibile sotto Licenza GPL. Questo significa che è libero, open source, e può essere utilizzato e modificato per progetti commerciali. Pertanto, non ci sono problemi legali per gli usi normali di MySQL sul vostro server.

Detto questo, se si sceglie di distribuire il suo codice sorgente, potrebbe essere necessario rilasciare l’intero progetto sotto licenza GPL, quindi non dimenticate di leggere la licenza.

Rispetto ad altri software a pagamento o con versioni gratuite molto restrittive, MySQL è una scelta eccellente.

Cose Importanti da Sapere su MySQL Community Server

Come ogni software, MySQL ha alcune limitazioni di cui dovreste tener conto. Alcune di queste derivano da errori. Altre si verificano perché un programma può memorizzare solo una certa quantità di dati.

In entrambi i casi, dovreste tenerle a mente e possibilmente anche cercare un’alternativa se sono causa di rotture per il vostro progetto.

Ecco le principali limitazioni da considerare:

  • Limite di dimensione delle tabelle: Ci sono diversi limiti rigidi sulle dimensioni delle righe e delle colonne. Potete avere solo 4096 colonne in una singola tabella, anche se potreste averne molte meno. Inoltre, c’è un limite di dimensione delle righe di 65.535 byte.
  • MySQL impone delle restrizioni: Anche se il vostro motore di archiviazione supporta righe e colonne più grandi, MySQL non vi permetterà di crearne oltre il limite consentito.
  • Windows impone ulteriori limiti: Le versioni Windows di MySQL hanno ulteriori restrizioni. Le versioni a 32 bit di Windows non possono utilizzare più di 2GB di RAM in un processo. Inoltre, un server Windows può utilizzare solo 4000 porte, che possono riempirsi rapidamente quando molti client si connettono al vostro database.
  • Limiti di funzioni e routine: MySQL ha diverse limitazioni autoimposte su funzioni e routine di cui dovreste essere consapevoli se incontrate problemi.
  • Grandi database possono funzionare male: Con enormi database con grandi volumi di contenuti da memorizzare e ordinare, MySQL può iniziare a soffrire. Anche il backup e il ripristino dei backup possono diventare un problema.
  • State attenti ai problemi di memoria: La memoria può essere un problema enorme con MySQL, e quando si esaurisce la memoria potrebbe non essere chiaro cosa sta causando il blocco improvviso.

Anche se può sembrare un elenco preoccupante di limitazioni, ogni sistema di gestione di database ha i suoi pro e contro, e MySQL è adatto alla maggior parte dei progetti. Enormi siti web aziendali e i big data possono spingere MySQL al limite, ma piccoli progetti e siti web abbastanza attivi funzioneranno bene.

MySQL Community Server vs MySQL Enterprise Edition

MySQL viene distribuito in due edizioni distinte: Community Server e Enterprise. La prima è la versione open source di MySQL conosciuta e apprezzata da tutti. L’edizione Enterprise esiste come versione a pagamento, ma più solida e adatta a grandi siti web aziendali.

MySQL Enterprise Edition.
MySQL Enterprise Edition.

Ecco alcuni consigli sulla sicurezza:

  • Criptate le password: Memorizzare password di testo semplice nel database può essere estremamente pericoloso. Invece, seguite le linee guida sulle password e criptatele. Se utilizzate un plugin per WordPress, probabilmente sarà il plugin ad occuparsene per voi.
  • Limitate gli accessi degli utenti: Non date mai agli utenti non root l’accesso alla tabella utenti.
  • Non utilizzate l’utente root per il vostro server: Sui sistemi Linux, non eseguite mai il server MySQL con l’utente root (perché ha accesso a tutti i comandi e gli hacker potrebbero causare danni maggiori).
  • Limitate i privilegi: Assegnate agli utenti i giusti privilegi di account ed evitate di dare loro accesso più estesi del necessario. Richiedete sempre una password per tutti gli utenti.
  • Vietate l’inserimento di codice sui moduli: Impedite agli utenti di eseguire codice sul vostro sito attraverso le caselle di input (come i moduli).
  • Implementate un firewall: Utilizzate un firewall sul server del vostro database per bloccare accessi indesiderati.
  • Utilizzate SSL: Criptate con SSL il vostro sito web per nascondere tutti i dati che passano dal vostro server.
  • Rimuovete il database di prova: Rimuovete il database di prova (se “mysql_secure_installation” non l’ha rimosso) perché chiunque può accedervi.

Come Installare MySQL Community Server su Windows

Non avete familiarità con Linux? O il vostro server gira su una macchina Windows?

Per fortuna, c’è un semplice strumento di installazione di MySQL che potete utilizzare per avere MySQL in funzione sul vostro sistema operativo. Non è necessaria nessuna configurazione lunga e complessa o codice complicato, solo una procedura guidata standard di installazione per Windows.

MySQL Installer per Windows.
MySQL Installer per Windows.

Passo 1: Scaricate il MySQL Installer per Windows. Dovreste vedere due file: il web installer e l’installer alternativo. Scegliete il primo se avrete una connessione internet mentre scaricate MySQL. Altrimenti, scegliete la seconda opzione. Potete anche scaricare l’archivio zip, scompattarlo, e poi installare MySQL manualmente. Ma non potete configurarlo con la procedura guidata dell’installer.

Passo 2: Una volta che MySQL è stato scaricato, fate doppio clic sul programma di installazione per aprirlo. Procedete attraverso le schermate visualizzate per completare l’installazione.

MySQL Installer
MySQL Installer

Passo 3: Presto raggiungerete la schermata del tipo di installazione. Supponiamo che stiate utilizzando MySQL come sviluppatori, selezionate Developer Default. L’opzione Server only va meglio per le macchine server. Se non siete sicuri, scegliete Full per scaricare tutti i componenti. Il setup potrebbe richiedervi di installare un software; lasciate che questo si risolva automaticamente o cercate gli strumenti necessari online.

MySQL Installer Setup Type.
MySQL Installer Setup Type.

Passo 4: Una volta che avete scaricato tutto ciò che avete selezionato, raggiungerete una schermata di configurazione. Potete lasciare la maggior parte delle impostazioni predefinite (ma assicuratevi di scegliere Server Computer o Dedicated Computer se stai installando un server di database su questa macchina).

Dovrete anche impostare una password root e opzionalmente aggiungere altri utenti.

E, se volete che MySQL venga eseguito all’avvio, spuntate la relativa casella.

Passo 5: Conclusa la configurazione, completate l’installazione. Se siete pronti a provare MySQL, lasciate selezionata l’opzione Start MySQL Workbench after Setup. Potete sempre lanciare MySQL Workbench in seguito cliccando sul menu start e digitandolo nella barra di ricerca.

Con questo avete installato MySQL correttamente e potete iniziare a testarlo.

Installare MySQL Community Server su Linux

A differenza di Windows, non c’è un modo semplice per eseguire un programma di installazione per avere MySQL in funzione sulla vostra macchina. Invece, per installare MySQL, dovrete utilizzare la linea di comando. Questa utilizzerà i gestori di pacchetti integrati nel sistema operativo.

Per fortuna, in teoria questo è molto più semplice che dover passare dalle fasi di un programma di installazione su Windows. Tutto quello che dovete fare è lanciare il Terminale e iniziare.

Ecco come fare su sistemi operativi basati su apt come Ubuntu (una nota prima di iniziare: potrebbe essere necessario installare il MySQL APT Repository):

Repository setup packages.
Repository setup packages.

Passo 1: Prima di tutto, aggiornate i pacchetti installati sulla vostra macchina per essere sicuri di avere l’ultima versione di MySQL:

sudo apt update.
sudo apt update.

Passo 2: Ora eseguite questo codice per installare MySQL:

sudo apt install mysql-server

Questo comando eseguirà la maggior parte delle funzioni di installazione e avvierà il server. Se il comando vi chiede di scegliere una versione, selezionate l’ultima, che attualmente è la 8.0 (a meno che non sappiate di aver bisogno di una versione diversa).

Passo 3: Eseguite l’installazione sicura per riparare le falle di sicurezza:

sudo mysql_secure_installation

Passo 4: MySQL dovrebbe partire automaticamente, ma potete eseguire questo comando se vi accorgete che non parte:

sudo service mysql restart

Per i sistemi basati su yum come CentOS 7, i passaggi sono molto simili. La differenza è che avrete bisogno del MySQL Yum Repository. Dovete sostituire i comandi apt con yum.

Installare MySQL Community Server su Mac

Alcune versioni di Mac OS X hanno MySQL preinstallato! Potete verificare se è sul vostro computer eseguendo questo comando nel terminale:

mysql -V

Se vedete un output, allora MySQL è già installato e non avete bisogno di fare altro. Tuttavia, vi consigliamo di utilizzare la versione 5.7 o la 8.0. Se la vostra versione è inferiore a questa, dovreste installare una nuova versione di MySQL.

Dato che Mac non dispone dello stesso semplice gestore di pacchetti di Linux, useremo invece Homebrew, un popolare programma che rende l’installazione di MySQL (e ogni sorta di cose) estremamente facile.

Homebrew su Mac.
Homebrew su Mac.

Passo 1: Dopo aver installato Homebrew, inserite il seguente comando nel Terminale:

brew install mysql

Questo comando installa MySQL 8.0 e avvia immediatamente il servizio.

Passo 2: Eseguite la procedura di installazione sicura:

mysql_secure_installation

Passo 3: Se il server MySQL non è partito, potete avviarlo manualmente:

brew services start mysql

Riepilogo

Avviare un server MySQL può sembrare un compito scoraggiante, ma non è troppo difficile una volta che si prende la mano. Per configurarlo potreste aver utilizzato il programma di installazione di Windows o il Terminale. In entrambi i casi ora dovreste avere in funzione il database SQL sul vostro computer.

Ora che avete un database, dovete farne il backup e tenerlo protetto. Date un’occhiata alla nostra guida al back-up del database MySQL, così non perderete mai nessun dato. È fondamentale per tenere al sicuro i vostri siti web.