Un server di database è un componente critico dell'infrastruttura di rete necessaria per le applicazioni odierne. Senza la possibilità di archiviare, recuperare, aggiornare ed eliminare i dati (se necessario), l'utilità e la portata delle app Web e desktop diventano molto limitate.
Inoltre, sapere come installare, gestire e configurare un server di database (in modo che funzioni come previsto) è un'abilità essenziale che ogni amministratore di sistema deve avere.
In questo articolo esamineremo brevemente come installare e proteggere un server di database MariaDB e poi spiegheremo come configurarlo.
Nel CentOS 7.x, MariaDB ha sostituito MySQL, che si trova ancora nel Ubuntu (insieme a MariaDB). Lo stesso vale per openSUSE.
Per brevità, useremo solo Maria DB in questo tutorial, ma tieni presente che oltre ad avere nomi e filosofie di sviluppo diversi, entrambi Sistemi di gestione di database relazionali (RDBMS in breve) sono quasi identici.
Ciò significa che i comandi lato client sono gli stessi su entrambi MySQL e Maria DBe i file di configurazione sono denominati e posizionati negli stessi posti.
Per installare MariaDB, fai:
Su CentOS/RHEL 7 e Fedora 23 # yum update && yum install mariadb mariadb-server # CentOS Su Debian e Ubuntu $ sudo aptitude update && sudo aptitude install mariadb-client mariadb-server Su openSUSE # zypper update && zypper install mariadb mariadb-tools # openSUSE.
Nota che, in Ubuntu, ti verrà chiesto di inserire una password per l'utente root RDBMS.
Una volta installati i pacchetti di cui sopra, assicurati che il servizio di database sia in esecuzione e sia stato attivato per l'avvio all'avvio (in CentOS e openSUSE sarà necessario eseguire questa operazione manualmente, mentre in Ubuntu il processo di installazione se ne sarà già occupato per te):
Su CentOS/RHEL 7 e Fedora 23 # systemctl start mariadb && systemctl enable mariadb Su openSUSE # systemctl start mysql && systemctl abilita mysql.
Quindi esegui il mysql_secure_installation
sceneggiatura. Questo processo ti permetterà di:
Per una descrizione più dettagliata di questo processo, è possibile fare riferimento alla sezione Post installazione in Installa il database MariaDB in RHEL/CentOS/Fedora e Debian/Ubuntu.
Le opzioni di configurazione predefinite vengono lette dai seguenti file nell'ordine indicato: /etc/mysql/my.cnf
, /etc/my.cnf
, e ~/.mio.cnf
.
Il più delle volte, solo /etc/my.cnf
esiste. È su questo file che imposteremo le impostazioni a livello di server (che possono essere sovrascritte con le stesse impostazioni in ~/.mio.cnf
per ogni utente).
La prima cosa che dobbiamo notare su mio.cnf
è che le impostazioni sono organizzate in categorie (o gruppi) in cui ogni nome di categoria è racchiuso tra parentesi quadre.
Le configurazioni del sistema del server sono fornite nel [mysqld]
sezione, dove in genere troverai solo le prime due impostazioni nella tabella sottostante. Il resto sono altre opzioni di uso frequente (dove indicato, cambieremo il valore predefinito con uno personalizzato a nostra scelta):
Impostazione e descrizione | Valore di default |
datadir è la directory in cui sono archiviati i file di dati. | datadir=/var/lib/mysql |
socket indica il nome e la posizione del file socket utilizzato per le connessioni client locali. Tieni presente che un file socket è una risorsa utilizzata per passare informazioni tra le applicazioni. | socket=/var/lib/mysql/mysql.sock |
bind_address è l'indirizzo su cui il server del database ascolterà le connessioni TCP/IP. Se hai bisogno che il tuo server ascolti su più di un indirizzo IP, tralascia questa impostazione (0.0.0.0 che significa che ascolterà su tutti gli indirizzi IP assegnati a questo host specifico). Lo cambieremo per indicare al servizio di ascoltare solo sul suo indirizzo principale (192.168.0.13): bind_address=192.168.0.13 |
bind_address=0.0.0.0 |
port rappresenta la porta su cui sarà in ascolto il server del database. Sostituiremo il valore predefinito (3306) con 20500 (ma dobbiamo assicurarci che nient'altro utilizzi quella porta): Mentre alcune persone sosterranno che la sicurezza attraverso l'oscurità non è una buona pratica, cambiare il le porte dell'applicazione predefinite per quelle superiori è un metodo rudimentale, ma efficace, per scoraggiare la porta scansioni. |
porta=3306 |
innodb_buffer_pool_size è il pool di buffer (in byte) di memoria allocato per dati e indici a cui si accede frequentemente quando si utilizza Innodb (che è l'impostazione predefinita in MariaDB) o XtraDB come storage motore. Sostituiremo il valore predefinito con 256 MB: innodb_buffer_pool_size=256M |
innodb_buffer_pool_size=134217728 |
skip_name_resolve indica se i nomi host verranno risolti o meno sulle connessioni in entrata. Se impostato a 1, come faremo in questa guida, solo indirizzi IP. A meno che tu non richieda i nomi host per determinare i permessi, è consigliabile disabilitare questa variabile (al fine di velocizzare le connessioni e le query) impostandone il valore su 1: skip_name_resolve=1 |
skip_name_resolve=0 |
query_cache_size rappresenta la dimensione (in byte) disponibile per la cache delle query su disco, dove si trovano i risultati delle query SELECT memorizzato per uso futuro quando una query identica (allo stesso database e utilizzando lo stesso protocollo e lo stesso set di caratteri) è eseguita. Dovresti scegliere una dimensione della cache delle query che corrisponda alle tue esigenze in base a 1) il numero di query ripetitive e 2) il numero approssimativo di record che tali query ripetitive dovrebbero restituire. Per il momento imposteremo questo valore a 100 MB: query_cache_size=100M |
query_cache_size=0 (che significa che è disabilitato per impostazione predefinita) |
max_connections è il numero massimo di connessioni client simultanee al server. Imposteremo questo valore a 30: max_connections=30 Ogni connessione utilizzerà un thread e quindi consumerà memoria. Tieni conto di questo fatto durante l'impostazione di max_connections. |
max_connections=151 |
thread_cache_size indica il numero di thread che il server alloca per il riutilizzo dopo che un client si disconnette e libera i thread precedentemente in uso. In questa situazione, è più economico (in termini di prestazioni) riutilizzare un thread piuttosto che istanziarne uno nuovo. Di nuovo, questo dipende dal numero di connessioni che ti aspetti. Possiamo tranquillamente impostare questo valore alla metà del numero di max_connections: thread_cache_size=15 |
thread_cache_size=0 (disabilitato per impostazione predefinita) |
Nel CentOS, dovremo dirlo SELinux permettere Maria DB per ascoltare su una porta non standard (20500) prima di riavviare il servizio:
# yum install policycoreutils-python. # semanage port -a -t mysqld_port_t -p tcp 20500.
Quindi riavvia il servizio MariaDB.
Per aiutarci a controllare e mettere a punto la configurazione secondo le nostre esigenze specifiche, possiamo installare mysqltuner (uno script che fornirà suggerimenti per migliorare le prestazioni del nostro server database e aumentarne la stabilità):
# wget https://github.com/major/MySQLTuner-perl/tarball/master. # tar xzf master.
Quindi cambia directory nella cartella estratta dal tarball (la versione esatta potrebbe differire nel tuo caso):
# cd major-MySQLTuner-perl-7dabf27.
ed eseguilo (ti verrà richiesto di inserire le credenziali del tuo account amministrativo MariaDB)
# ./mysqltuner.pl.
L'output dello script è di per sé molto interessante, ma saltiamo in fondo dove sono elencate le variabili da regolare con il valore consigliato:
Il query_cache_type
l'impostazione indica se la cache delle query è disabilitata (0) o abilitato (1). In questo caso, mysqltuner ci sta consigliando di disabilitarlo.
Allora perché ci viene consigliato di disattivarlo ora? Il motivo è che la cache delle query è utile principalmente in scenari ad alta lettura / bassa scrittura (che non è il nostro caso, poiché abbiamo appena installato il server del database).
AVVERTIMENTO: Prima di apportare modifiche alla configurazione di un server di produzione, si consiglia vivamente di consultare un esperto amministratore del database per garantire che una raccomandazione fornita da mysqltuner non abbia un impatto negativo su un esistente ambientazione.
In questo articolo abbiamo spiegato come configurare un server di database MariaDB dopo averlo installato e protetto. Le variabili di configurazione elencate nella tabella sopra sono solo alcune delle impostazioni che potresti voler prendere in considerazione durante la preparazione del server per l'uso o durante la messa a punto in un secondo momento. Fare sempre riferimento al documentazione ufficiale MariaDB prima di apportare modifiche o fare riferimento ai nostri suggerimenti per l'ottimizzazione delle prestazioni di MariaDB:
Da non perdere:15 utili suggerimenti per la messa a punto e l'ottimizzazione delle prestazioni di MariaDB
Come sempre, non esitare a farci sapere se hai domande o commenti su questo articolo. Ci sono altre impostazioni del server che ti piace usare? Sentiti libero di condividere con il resto della community utilizzando il modulo di commento qui sotto.