GNU/Linux >> Linux Esercitazione >  >> Linux

Configura il server MariaDB su CentOS

L'articolo precedente trattava di una configurazione di base del server MariaDB® su CentOS Linux, inclusa l'impostazione della password di root, la creazione di un database e la creazione di un utente per il database. Ora diamo un'occhiata a MariaDB un po' più in dettaglio per modificare la sua configurazione ed essere pronti nel caso qualcosa vada storto.

Trova i file di configurazione

Per impostazione predefinita, troverai il file di configurazione di MariaDB nel seguente percorso:

/etc/my.cnf

Se non è presente puoi usare mysqld per cercare il file di configurazione eseguendo il comando seguente:

/usr/libexec/mysqld --help --verbose

Riceverai un sacco di testo indietro. La prima parte descrive le opzioni che puoi inviare al server quando lo avvii. La seconda parte contiene tutte le informazioni di configurazione che sono state impostate al momento della compilazione del server.

Vicino all'inizio dell'output, trova un paio di righe simili alle seguenti righe:

Default options are read from the following files in the given order:
/etc/mysql/my.cnf /etc/my.cnf ~/.my.cnf

Il server scorre l'elenco finché non trova un file di configurazione.

mio.cnf

Apri my.cnf file e dai un'occhiata all'interno.

Tutte le righe che iniziano con # sono commenti e documentano principalmente a cosa servono le diverse impostazioni. Troverai dettagli come la posizione dei file di registro e dove sono conservati i file di database.

Configura gruppi

Ci sono righe nel file di configurazione che contengono solo una parola tra parentesi quadre, come [client] o [mysqld] . Questi sono gruppi di configurazione e dicono ai programmi che leggono il file di configurazione a quali parti dovrebbero prestare attenzione.

MariaDB è tecnicamente una raccolta di strumenti che include il server (mysqld ), il client (mysql ), e alcuni altri strumenti. I programmi cercano in my.cnf per vedere come dovrebbero comportarsi.

Fondamentalmente, il mysql la sezione di configurazione controlla il client e mysqld la sezione controlla il server.

File di registro

Se qualcosa va storto, il posto migliore per iniziare la risoluzione dei problemi di qualsiasi programma sono i suoi registri. Per impostazione predefinita, MariaDB memorizza i suoi file di registro nella directory seguente:

/var/log/mariadb

Nota :Potrebbe essere necessario utilizzare sudo per ottenere un elenco dei file in quella directory.

Se non trovi i log nella directory predefinita, devi controllare la configurazione di MariaDB. Cerca in my.cnf file e cerca un log_error riga, come in:

log_error = /var/log/mariadb/mariadb.log

Se non vedi una riga del genere, creane una in mysqld sezione in modo che MariaDB utilizzi il proprio registro degli errori. Ti consigliamo di utilizzare la posizione nell'esempio e di creare il /var/log/mariadb directory se non esiste già. Applicare la modifica riavviando MariaDB con il seguente comando:

systemctl restart mariadb

Assicurati che la directory di registro che scegli possa essere scritta dall'utente che controlla il processo MariaDB.

Impostazioni di rete

Potrebbe esserci una porta impostazione in entrambe le sezioni di configurazione del client e del server. La porta nella sezione del server controlla la porta su cui il server è in ascolto. Per impostazione predefinita, è 3306, ma puoi cambiarlo in qualsiasi cosa desideri.

La porta nella sezione client indica al client la porta a cui connettersi per impostazione predefinita. In genere desideri che le due impostazioni delle porte corrispondano.

Se non vedi le voci delle porte nel file di configurazione, significa che le porte stanno usando l'impostazione predefinita. Se vuoi cambiare la porta, aggiungi le righe nelle categorie appropriate, come mostrato nell'esempio seguente:

[client]
port = 3306

[mysqld]
port = 3306

L'altra impostazione di rete da cercare è l'indirizzo di collegamento valore. Di solito è impostato sull'indirizzo per localhost, 127.0.0.1. Associando a localhost, il server si assicura che nessuno possa connettersi ad esso dall'esterno della macchina locale.

Se stai eseguendo il tuo server MariaDB su una macchina diversa dalla tua applicazione, desideri eseguire il binding a un indirizzo accessibile in remoto anziché a localhost. Modifica l'indirizzo di rilegatura impostazione in modo che corrisponda al tuo indirizzo IP pubblico (o, ancora meglio, a un indirizzo IP di back-end su una rete a cui possono accedere meno macchine).

Se non vedi un indirizzo di rilegatura voce, dovresti inserirne uno in mysqld categoria per aiutare a controllare l'accesso al server, simile al seguente esempio:

[mysqld]
bind-address = 127.0.0.1

Ricorda di tenere conto del nome host del client quando configuri gli utenti del database e di configurare il firewall se stai eseguendo iptables.

mysqld e mysqld_safe

Dietro le quinte ci sono in realtà due versioni del server MariaDB,mysqld e mysqld_safe . Entrambi leggono le stesse sezioni di configurazione. La differenza principale è che mysqld_safe si avvia con alcune funzioni di sicurezza abilitate per facilitare il ripristino da un arresto anomalo o da altri problemi.

Entrambi mysqld e mysqld_safe leggerà le voci di configurazione in mysqld sezione. Se includi un mysqld_safe sezione, quindi solo mysqld_safe legge quei valori.

Per impostazione predefinita mysql il servizio lancia mysqld_safe . Dovresti cambiarlo solo se sei veramente sicuro di quello che stai facendo.

mysqladmin

mysqladmin strumento consente di eseguire alcune funzioni amministrative dalla riga di comando. Questo strumento non è trattato in questo articolo perché questo articolo illustra le nozioni di base per iniziare a funzionare. Puoi esaminare questo strumento in modo più approfondito in seguito per vedere cosa può fare, in particolare se devi creare script che svolgano funzioni come il controllo stato del server o creazione e eliminazione di database.

Backup

Quando si tratta di eseguire backup dei database (a parte l'approccio per eseguire il backup dell'intera macchina), sono disponibili alcune opzioni. Le opzioni principali sono copiare i file del database e utilizzare mysqldump .

Copia file

Per impostazione predefinita, MariaDB crea una directory per ogni database nella sua datadirectory simile al seguente esempio:

/var/lib/mysql

Dopo aver trovato la directory dei dati, non farne una copia immediatamente. Quando il server di database è attivo, potrebbe scrivere newvalues ​​nelle tabelle in qualsiasi momento. Se viene scritto su una tabella a metà della copia, alcuni file cambieranno e porteranno a un backup danneggiato. Se stai cercando di pianificare il ripristino di emergenza, questa non è una buona cosa.

Per assicurarsi che i file di database vengano copiati in modo pulito, chiudere completamente il server MariaDB prima della copia. È sicuro ma non è sempre l'ideale.

Un altro approccio che puoi adottare è bloccare il database come di sola lettura per la durata della copia. Quindi, quando hai finito, rilascia il blocco. In questo modo le tue applicazioni possono ancora leggere i dati durante il backup dei file.

Blocca i database in sola lettura eseguendo il comando seguente dalla riga di comando:

mysql -u root -p -e "FLUSH TABLES WITH READ LOCK;"

Per sbloccare il database quando hai finito, esegui questo comando:

mysql -u root -p -e "UNLOCK TABLES;"

Le opzioni -e con mysql client dice al client di eseguire la query tra virgolette come se fosse stata inserita con mysql guscio.

Se stai impostando questi comandi in uno script, puoi mettere la password tra virgolette subito dopo -p senza spazio tra i due, come nell'esempio seguente:

mysql -u root -p"password" -e "FLUSH TABLES WITH READ LOCK;"
mysql -u root -p"password" -e "UNLOCK TABLES;"

Nota: Assicurati di impostare le autorizzazioni su quel file per limitare l'accesso in lettura per proteggere la password.

mysqldump

Un altro approccio per eseguire il backup del database consiste nell'utilizzare mysqldump attrezzo. Invece di copiare direttamente i file del database, mysqldump genera un file di testo che rappresenta il database. Per impostazione predefinita, il file di testo contiene un elenco di istruzioni SQL che useresti per ricreare il database, ma puoi anche esportare il database in un altro formato come CSV o XML. Puoi leggere mysqldump pagina man per vedere tutte le sue opzioni.

Le dichiarazioni generate da mysqldump vai allo standard output. Vuoi specificare un file a cui reindirizzare l'output quando lo esegui. Ad esempio:

mysqldump -u root -p demodb > dbbackup.sql

Quel comando dice a mysqldump per ricreare il demodb istruzioni inSQL del database e di scriverle nel file dbbackup.sql . Nota che le opzioni di nome utente e password funzionano allo stesso modo di mysql client, quindi puoi includere la password direttamente dopo -p in uno script.

Ripristina da mysqldump

Ripristino di un database copiato con mysqldump sembra simile a quello che è stato utilizzato per crearlo, ma usi mysql invece di mysqldump , come mostrato nel comando seguente:

mysql -u root -p demodb < dbbackup.sql

Si passa anche dall'utilizzo di un segno maggiore di a un segno minore di, che cambia il comando dal reindirizzare il suo output a dirgli di leggere il suo input dal file esistente. L'input viene inviato a mysql commandand provoca le istruzioni nella copia fatta con mysqldump per ricreare il database.

Per impostazione predefinita, le istruzioni SQL generate vengono aggiunte alle tabelle di database esistenti senza sovrascriverle. Se stai ripristinando un backup su un database esistente, dovresti prima eliminare le tabelle del database o eliminare e ricreare il database stesso. Puoi modificare quel comportamento utilizzando la –add-drop-table opzione con il comando che crea il mysqldump . Ciò provoca mysqldump per aggiungere un comando ai file di backup che scrive che elimina le tabelle prima di ricrearle.

Motore database

L'ultimo concetto da trattare in questo articolo è il motore di database .Il motore è il processo che si svolge dietro le quinte, scrivendo e leggendo dai file. Di solito non hai bisogno di sapere nient'altro che che sia lì, ma a volte vuoi eseguire un'applicazione che è stata ottimizzata per un particolare motore di database.

Il tipo di motore viene impostato quando viene creata una tabella. Le tabelle vengono solitamente create dall'applicazione che le utilizzerà.

Per vedere il motore utilizzato dalle tabelle del tuo database, puoi eseguire il seguente comando nella shell MariaDB, cambiando demodb al nome del tuo database:

SHOW TABLE STATUS FROM demodb;

Scelta di un motore

Idealmente non sarà necessario scegliere un motore. Se non hai molta familiarità con MariaDB, questa è la strada più sicura da percorrere. Lascia che sia l'applicazione a gestirlo e, se stai scrivendo l'applicazione, usa il motore predefinito finché non ti senti più a tuo agio con le tue opzioni.

I motori di database utilizzati più spesso con MariaDB sono MyISAM e InnoDB .

MyISAM

Poiché MyISAM è stato l'impostazione predefinita in MySQL per un po', è il più compatibile con MariaDB. Alcuni tipi di ricerche hanno prestazioni migliori su MyISAM rispetto a InnoDB. Solo perché è il più vecchio dei due non significa che non possa essere il migliore per un determinato tipo di applicazione.

InnoDB

InnoDB è più tollerante ai guasti di MyISAM e gestisce arresti anomali e ripristino con una probabilità molto minore di danneggiamento del database. Questa è una buona cosa.

Tuttavia, per ottenere le migliori prestazioni, InnoDB richiede molte modifiche all'ambiente e ai modelli di accesso. Se hai un DBA, questo lavoro potrebbe non essere un problema. Ma se sei uno sviluppatore che desidera un database attivo e funzionante per un server di prova, probabilmente non vorrai occuparti dell'ottimizzazione di InnoDB.

Riepilogo

A questo punto, dovresti avere una buona conoscenza di MariaDB. Per ulteriori informazioni, vedere il sito della documentazione di MariaDB.


Linux
  1. Installazione di MariaDB su CentOS 7

  2. Installa MariaDB 10.0 su CentOS 6

  3. Installa un server MariaDB su CentOS

  4. Centos 7:Installa, Configura, Gestisci

  5. Centos 7 :Configura il server DNS

Come configurare NGINX su un server CentOS 7

Come installare e configurare Subversion (SVN) su CentOS 7

Come installare e configurare Sandstorm Server su CentOS 8

Come installare e configurare Privoxy Server su CentOS 8

Come configurare il server VNC su CentOS/RHEL 6

Centos 7 :Configura il server NTP