Impariamo a installare e configurare Mariadb, un popolare sistema di gestione del database relazionale della fonte open source open source (RDBMS).
è sviluppato dalla Comunità e ha il sostegno commerciale opzione. È inteso che Mariadb rimane altamente compatibile con MySQL, anche se ci sono alcune deviazioni.
In questo articolo, copriremo l’installazione e la configurazione di MariaDB su Ubuntu 20.x e Centos 7.x / 8. X E alla fine esamineremo alcune delle migliori pratiche per garantire e migliorare le loro prestazioni.
Mariadb in Ubuntu
in ubuntu 20.x, Mariadb è disponibile direttamente dal momento che è disponibile direttamente dal suo valore predefinito repository. Utilizzeremo APT per questa attività.
Aggiorna i dati dai repository APT tramite:
$ sudo apt update
Una volta aggiornato i dati Il repository, eseguire:
$ sudo apt install mariadb-server
Installerà Mariadb e i pacchetti richiesti. Confermare con “Y” per qualsiasi messaggio che è possibile ricevere durante l’esecuzione del comando precedente.
Do you want to continue? Y
mariadb in centesimi 7.x
Per Centos 7.x, la versione Mariadb disponibile nel repository di Centos predefinito è 5.x. Stiamo per installare l’ultima versione disponibile di Mariadb.
Per questo, è necessario prima configurare un repository yum aggiuntivo. Mariadb fornisce un modo semplice per utilizzare mariadb_repo_setup
script. Per configurare il repository, eseguire i seguenti comandi nei centos del sistema 7.x:
$ sudo yum install wget$ wget https://downloads.mariadb.com/MariaDB/mariadb_repo_setup$ chmod +x mariadb_repo_setup$ sudo ./mariadb_repo_setup
Questo script configurerà il repository yum richiesto per installare la versione più recente di Mariadb automaticamente. Al momento della stesura di questo articolo, è 10.x.
o nel caso in cui si desidera passare manualmente, è possibile configurare un repository manuale yum creando un nuovo file di repository come:
$ sudo vi /etc/yum.repos.d/MariaDB.repo
Aggiungere i seguenti dettagli al file di repository e salvarlo:
name = MariaDBbaseurl = http://yum.mariadb.org/10.5/centos7-amd64gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDBgpgcheck=1
Ora per installare Mariadb, eseguire il seguente comando:
$ sudo yum install MariaDB-server
Conferma qualsiasi messaggio che appare durante l’installazione inserendo ‘y’:
Is this ok : y
Completa l’installazione del server MariaDB e i pacchetti dipendenti.
mariadb in centos 8.x
per 8.x centos, la versione disponibile dei default dei repository è 10.3 o più recente. Possiamo installare MariaDB direttamente utilizzando il comando DNF:
In caso contrario, per ottenere la versione più recente disponibile, è possibile seguire il metodo manuale come indicato nella sezione precedente a Centos 7.x e questo dovrebbe aiutarti a lavorare.
Avvio Mariadb
Su una macchina Ubuntu, avrai il servizio Mariadb in esecuzione subito dopo l’installazione, mentre per Centos, abbiamo Per abilitare e avviare manualmente i servizi pertinenti.
In ogni caso, sia Ubuntu che Centos, eseguire i seguenti comandi per avviare il servizio MariaDB, abilitarlo all’avvio e verificarlo:
Uscita:
$ sudo systemctl start mariadb.service$ sudo systemctl enable mariadb.serviceCreated symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.$ sudo systemctl status mariadb.service● mariadb.service - MariaDB 10.5.8 database server Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled) Drop-In: /etc/systemd/system/mariadb.service.d └─migrated-from-my.cnf-settings.conf Active: active (running) since Thu 2020-12-31 13:20:04 IST; 13s ago Docs: man:mariadbd(8) https://mariadb.com/kb/en/library/systemd/ Main PID: 13521 (mariadbd) Status: "Taking your SQL requests now..." CGroup: /system.slice/mariadb.service └─13521 /usr/sbin/mariadbdDec 31 13:20:04 centos7vm mariadbd: 2020-12-31 13:20:04 0 InnoDB: 10.5.8 started; log sequence number 45118; transaction id 20Dec 31 13:20:04 centos7vm mariadbd: 2020-12-31 13:20:04 0 Plugin 'FEEDBACK' is disabled.Dec 31 13:20:04 centos7vm mariadbd: 2020-12-31 13:20:04 0 InnoDB: Loading buffer pool(s) from /var/lib/mysql/ib_buffer_poolDec 31 13:20:04 centos7vm mariadbd: 2020-12-31 13:20:04 0 InnoDB: Buffer pool(s) load completed at 201231 13:20:04Dec 31 13:20:04 centos7vm mariadbd: 2020-12-31 13:20:04 0 Server socket created on IP: '::'.Dec 31 13:20:04 centos7vm mariadbd: 2020-12-31 13:20:04 0 Reading of all Master_info entries succeededDec 31 13:20:04 centos7vm mariadbd: 2020-12-31 13:20:04 0 Added new Master_info '' to hash tableDec 31 13:20:04 centos7vm mariadbd: 2020-12-31 13:20:04 0 /usr/sbin/mariadbd: ready for connections.Dec 31 13:20:04 centos7vm mariadbd: Version: '10.5.8-MariaDB' socket: '/var/lib/mysql/mysql.sock' port: 3306 MariaDB ServerDec 31 13:20:04 centos7vm systemd: Started MariaDB 10.5.8 database server.$
Garantire mariadb
come primo passo dopo l’installazione di MariaDB, Dobbiamo assicurarne la sua implementazione impostando una password di root, disabilitando il login radice remoto, eliminando il database del test, così come Utenti anonimi e finalmente ricordando i privilegi.
Eseguire il seguente comando Mariadb Harden:
$ sudo mysql_secure_installation
È possibile seguire le indicazioni predefinite con le azioni suggerite A meno che tu non abbia un requisito specifico per deviare.
output:
$ sudo mysql_secure_installationNOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!In order to log into MariaDB to secure it, we'll need the currentpassword for the root user. If you've just installed MariaDB, andhaven't set the root password yet, you should just press enter here.Enter current password for root (enter for none):OK, successfully used password, moving on...Setting the root password or using the unix_socket ensures that nobodycan log into the MariaDB root user without the proper authorisation.You already have your root account protected, so you can safely answer 'n'.Switch to unix_socket authentication n ... skipping.You already have your root account protected, so you can safely answer 'n'.Change the root password? n ... skipping.By default, a MariaDB installation has an anonymous user, allowing anyoneto log into MariaDB without having to have a user account created forthem. This is intended only for testing, and to make the installationgo a bit smoother. You should remove them before moving into aproduction environment.Remove anonymous users? Y ... Success!Normally, root should only be allowed to connect from 'localhost'. Thisensures that someone cannot guess at the root password from the network.Disallow root login remotely? Y ... Success!By default, MariaDB comes with a database named 'test' that anyone canaccess. This is also intended only for testing, and should be removedbefore moving into a production environment.Remove test database and access to it? Y - Dropping test database... ... Success! - Removing privileges on test database... ... Success!Reloading the privilege tables will ensure that all changes made so farwill take effect immediately.Reload privilege tables now? Y ... Success!Cleaning up...All done! If you've completed all of the above steps, your MariaDBinstallation should now be secure.Thanks for using MariaDB!$
Qui useremo l’autenticazione del sistema, quindi non lo facciamo Configurato una password di root separata per Mariadb, come è già al sicuro. Se necessario, è sempre possibile configurare una password di root separata.
Convalida della configurazione
Per verificare la configurazione MariaDB, eseguire (specificare la password che si imposta mentre mysql_secure_installation
o, se omet A quel tempo, utilizzare le credenziali di root del tuo sistema):
$ sudo mysqladmin -u root -p versionEnter password:mysqladmin Ver 9.1 Distrib 10.5.8-MariaDB, for Linux on x86_64Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.Server version 10.5.8-MariaDBProtocol version 10Connection Localhost via UNIX socketUNIX socket /var/lib/mysql/mysql.sockUptime: 53 min 17 secThreads: 2 Questions: 77 Slow queries: 0 Opens: 20 Open tables: 14 Queries per second avg: 0.024$
È possibile configurare un nuovo account amministratore anziché la radice come mostrato di seguito (cambia il valore di password
con il quale si intende impostare admin
account):
$ sudo mariadbWelcome to the MariaDB monitor. Commands end with ; or \g.Your MariaDB connection id is 44Server version: 10.5.8-MariaDB MariaDB ServerCopyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.MariaDB > GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;Query OK, 0 rows affected (0.003 sec)MariaDB > FLUSH PRIVILEGES;Query OK, 0 rows affected (0.000 sec)MariaDB > exitBye$
Controllare l’accesso con il nuovo admin
utente come (immettere password
come indicato nel passaggio precedente):
$ mysqladmin -u admin -p versionEnter password:mysqladmin Ver 9.1 Distrib 10.5.8-MariaDB, for Linux on x86_64Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.Server version 10.5.8-MariaDBProtocol version 10Connection Localhost via UNIX socketUNIX socket /var/lib/mysql/mysql.sockUptime: 56 min 59 secThreads: 2 Questions: 83 Slow queries: 0 Opens: 20 Open tables: 14 Queries per second avg: 0.024$
Ottimizzazione del sistema operativo
Dopo aver installato e fissando le impostazioni MariaDB, è necessario adottare misure per regolare il sistema operativo e il database per prestazioni ottimali. Questa impostazione varia a seconda della configurazione del sistema, il tipo di utilizzo, il numero di utenti e altri fattori.
Dalla prospettiva del sistema operativo, alcuni parametri di sistema possono essere configurati per MariaDB che noi Discuterà ora.
Linux Kernel Configuration – I / O programmatore
I programmatori I / O consigliati per Mariadb sono noop
e deadline
. Per verificare l’uso
$ sudo cat /sys/block/sda/queue/scheduler kyber bfq none$
può essere effettuato un cambiamento temporaneo emettendo il seguente comando e il suo effetto, Se c’è, sarà immediato sulle prestazioni del sistema:
$ sudo echo noop > /sys/block/sda/queue/scheduler
Per renderlo persistente, è necessario configurarlo nel file di configurazione GRUB come mostrato Sotto in /etc/default/grub
, ricostruisci Grub e riavviare il sistema.
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash elevator=noop"
Limiti di risorse: limite di file aperti
Linux generalmente limita il numero di descrittori di file che ciascun processo può aprire. Per un sistema di database attivo, questo limite può facilmente superare o influire sulle prestazioni. In molti sistemi Linux, questo limite predefinito è 1024. Inoltre, vi sono opzioni lisce e rigorose.
Per aumentare il limite, è possibile aggiungere le seguenti righe nel /etc/security/limits.conf
:
mysql soft nofile 65535mysql hard nofile 65535
sarà necessario riavviare il sistema dopo il quale mysql
L’utente può vedere e usa i nuovi limiti. Questo può essere controllato come:
$ ulimit -Sn65535$ ulimit -Hn65535
Limiti di risorse: dimensione del file principale
linux limita la dimensione dei file centrali come se Ha visto nel caso precedente. Ancora una volta, questo ha un limite morbido e rigido, per impostazione predefinita, il limite morbido è impostato su 0, che disabilita efficacemente la generazione di file centrali. Per consentire la generazione di file centrali (altre configurazioni necessarie per generare ribaltazioni di memoria), possiamo aumentare questo valore a /etc/security/limits.conf come:
mysql soft core unlimitedmysql hard core unlimited
Dopo aver riavvia il sistema, mysql
L’utente potrebbe vedere i nuovi valori usando Comando come:
$ ulimit -Scunlimited$ ulimit -Hcunlimited
SWAPPIESS SWAPPIESS
Il valore di Exchange in Linux determina la probabilità che il sistema cambia una pagina di memoria allo spazio di cambio configurato nel sistema. Di solito, il valore predefinito è impostato su 60, che può essere verificato da:
sysctl vm.swappiness
Il suo valore può oscillare tra 0 e 100, dove un valore più basso una più bassa probabilità di scambio. Su un server di database che esegue solo Mariadb, vorremmo ridurre questo valore a 0 per evitare di utilizzare lo swap il più possibile. Si noti che qui che la configurazione del valore di scambio di 0 deve essere eseguita con cautela considerando altri fattori di progettazione del sistema, poiché nel caso di un uso elevato della memoria o del carico I / O, vi è una possibilità che il kernel rimuovi il processo di memoria insufficiente ( Oom).
Poiché viene raccomandata una configurazione di scambio basso per i carichi di lavoro del database e, in quanto tale, per i database Mariadb, è consigliato stabilire lo scambio a un valore 1. È possibile aggiungere la seguente riga /etc/sysctl.conf
in modo che questa modifica sia persistente:
vm.swappiness = 1
le modifiche entreranno in vigore dopo il riavvio del sistema, anche se tu Può sempre farlo in anticipo utilizzando sysctl
comando:
sysctl -w vm.swappiness=1
Ottimizzazioni del file system
Per Mariadb, i migliori file system Linux sono generalmente considerati ext4
, XFS
e Btrfs
Tutto incluso nel kernel principale Linux e sono ampiamente compatibili.Questi system sono disponibili nella maggior parte delle distribuzioni Linux. Ogni file system ha le sue proprietà e le sue caratteristiche uniche e possono essere scelte in base ai requisiti dopo una revisione appropriata.
Inoltre, è improbabile che sia necessario registrare il tempo di accesso al file su un server base per dati. Possiamo disattivare questo per migliorare le prestazioni. È possibile montare il file system pertinente con noatime
opzione o aggiungilo nelle opzioni di montaggio in file per renderlo persistente.
Ottimizzazione del database
Esistono diversi parametri ottimizzabili interni all’operazione Mariadb che possono essere personalizzati in base ai requisiti e alle esigenze di ciascuno.
Discuteremo alcuni di loro qui .
mariadb è impostato principalmente da my.cnf
file.
su ubuntu, puoi trovare my.cnf
a:
/etc/mysql/my.cnf
Nel frattempo Centos si trova in:
/etc/my.cnf
sei tu può consultare la documentazione dettagliata su quali variabili sono disponibili per regolare il file di configurazione da qui.
Molto dipende anche dal tipo di motore utilizzato da MariaDb, vale a dire, MyISAM
e InnoDB or XtraDB
. Entrambi hanno i propri pro e contro e scelgono uno dipende dai requisiti del database e dell’applicazione.
dovremmo impostare circa l’80% della sua memoria. Ciò garantisce che l’80% del set di lavoro sia in memoria.
Alcuni degli altri importanti parametri regolabili sono:
innodb_log_file_sizeinnodb_flush_methodinnodb_thread_sleep_delayinnodb_adaptive_max_sleep_delayinnodb_buffer_pool_instancesinnodb_buffer_pool_sizeinnodb_max_dirty_pages_pct_lwminnodb_read_ahead_thresholdinnodb_thread_concurrency
Più dettagli Informazioni sull’adeguamento delle variabili InnoDB o XTradb possono essere trovate qui. Vedere questo per tutte le opzioni di regolazione disponibili per Mariadb.
Se sei interessato, controllare queste risorse per imparare SQL e NOSQL.
conclusione
mariadb è una delle opzioni popolari quando si tratta di dbms della relazione. Essere open source con una comunità diversifica aggiunge altro ad esso.
Per ulteriori informazioni, consultare la documentazione che include argomenti come SQL di base, migrazione, amministrazione MariaDb, alta disponibilità, regolazione delle prestazioni, memoria dei motori, programmazione e Personalizzazione. È inoltre necessario disabilitare il record binario se non si utilizza un cluster.