Aprenem a instal·lar i configurar MariaDB, un popular sistema de gestió de bases de dades relacionals MySQL de codi obert (RDBMS).
Està desenvolupat per la comunitat i té la opció de suport comercial. Es pretén que MariaDB segueixi sent altament compatible amb MySQL, encara que existeixen algunes desviacions.
En aquest article, cobrirem la instal·lació i configuració de MariaDB a Ubuntu 20.xy CentOS 7.x / 8.xi a la fin revisarem algunes de les millors pràctiques per assegurar i millorar el seu rendiment.
MariaDB en Ubuntu
a l’Ubuntu 20.x, MariaDB està disponible directament des dels seus repositoris predeterminats. Farem servir apt per a aquesta tasca.
Primer actualitzi les dades dels repositoris de apt mitjançant:
$ sudo apt update
Una vegada que s’actualitzen les dades de l’repositori, executeu:
$ sudo apt install mariadb-server
Això instal·larà MariaDB i els paquets requerits. Confirmeu amb ‘I’ per a qualsevol missatge que pugui rebre durant l’execució de la comanda anterior.
Do you want to continue? Y
MariaDB en CentOS 7.x
per CentOS 7.x, la versió MariaDB disponible al repositori predeterminat de CentOS és 5.x. Anem a instal·lar l’última versió disponible de MariaDB.
Per això, primer ens cal configurar un repositori de yum addicional. MariaDB proporciona una manera senzilla d’utilitzar mariadb_repo_setup
guió. Per configurar el repositori, executeu les següents comandes en el seu sistema CentOS 7.x:
$ sudo yum install wget$ wget https://downloads.mariadb.com/MariaDB/mariadb_repo_setup$ chmod +x mariadb_repo_setup$ sudo ./mariadb_repo_setup
Aquest script configurarà el repositori de yum requerit per instal·lar la última versió de MariaDB automàticament. A l’hora d’escriure aquest article, és 10.x.
O en cas que vulgui anar de forma manual, pot configurar un repositori de yum manual creant un nou arxiu d’repositori com:
$ sudo vi /etc/yum.repos.d/MariaDB.repo
Després afegiu els següents detalls a l’arxiu de repositori i deseu-lo:
name = MariaDBbaseurl = http://yum.mariadb.org/10.5/centos7-amd64gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDBgpgcheck=1
Ara per instal·lar MariaDB, executi la següent comanda:
$ sudo yum install MariaDB-server
Confirmeu qualsevol missatge que aparegui durant la instal·lació ingressant ‘i’:
Is this ok : y
Això completa la instal·lació de servidor MariaDB i els paquets dependents.
MariaDB en CentOS 8.x
Per CentOS 8.x, la versió disponible dels dipòsits predeterminats és 10.3 o més recent. Podem instal·lar MariaDB directament usant el DNF comandament:
sudo dnf install mariadb-server
Si no, per obtenir l’última versió disponible, pot seguir el mètode manual com s’indica a la secció anterior per CentOS 7.xi això hauria ajudar-lo a treballar.
Iniciant MariaDB
En una màquina Ubuntu, tindrà el servei MariaDB executant just després de la instal·lació, mentre que per CentOS, tenim d’habilitar i iniciar manualment els serveis rellevants.
en qualsevol cas, tant per Ubuntu com per CentOS, executeu les ordres següents per iniciar el servei MariaDB, habilitar-lo en l’arrencada i verificar-:
$ sudo systemctl start mariadb.service$ sudo systemctl enable mariadb.service$ sudo systemctl status mariadb.service
Sortida:
$ 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.$
Assegurant MariaDB
Com a primer pas després de la instal·lació de MariaDB, hem d’assegurar la seva implementació establint una contrasenya de root, deshabilitant l’inici de sessió de root remot, eliminant la base de dades de prova, així com els usuaris anònims i finalment recarregant els privilegis.
Executeu l’ordre per endurir MariaDB:
$ sudo mysql_secure_installation
Podeu seguir les indicacions predeterminades amb accions suggerides a menys que tingui un requisit específic per a desviar-se.
Sortida:
$ 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!$
Aquí farem servir l’autenticació de sistema, de manera que no hem definit una contrasenya de root separada per MariaDB, ja que ja és segura. Si cal, sempre pot configurar una contrasenya de root independent.
Validació de la configuració
Per verificar la configuració de MariaDB, executeu (especifiqui la contrasenya que va configurar mentre mysql_secure_installation
o, si s’omet en aquest moment, utilitzeu les credencials arran del seu 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$
Podeu configurar un nou compte d’administrador en lloc de l’arrel com es mostra a continuació ( canvieu el valor de password
amb el que vols establir admin
compte):
$ 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$
Comprovar l’accés amb nou admin
usuari com (ingressi el password
com es va establir en el pas anterior):
$ 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$
Optimització de l’SO
Després d’instal·lar i assegurar la seva configuració de MariaDB, ha de prendre mesures per ajustar el seu sistema operatiu i la seva base de dades per a un rendiment òptim. Aquest ajust variarà segons la configuració del seu sistema, el tipus d’ús, el nombre d’usuaris i altres factors.
Des de la perspectiva de sistema operatiu, alguns paràmetres de sistema es poden configurar per MariaDB que discutirem ara.
Configuració de el nucli de Linux – Programador d’e / S
Els programadors d’e / S recomanats per MariaDB són noop
i deadline
. Per comprovar l’ús cat /sys/block/${DEVICE}/queue/scheduler
$ sudo cat /sys/block/sda/queue/scheduler kyber bfq none$
Es pot realitzar un canvi temporal emetent la següent comanda i el seu efecte, si n’hi ha, serà immediat en el rendiment de sistema:
$ sudo echo noop > /sys/block/sda/queue/scheduler
Perquè sigui persistent, haurà de configurar en l’arxiu de configuració de GRUB com es mostra a continuació en /etc/default/grub
, reconstrueixi GRUB i reinicieu el sistema.
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash elevator=noop"
Límits de recursos: límit de fitxers oberts
Linux generalment limita la quantitat de descriptors d’arxius que pot obrir cada procés. Per a un sistema de base de dades actiu, aquest límit pot excedir fàcilment o afectar el rendiment. En molts sistemes Linux, aquest límit predeterminat és 1024. A més, hi ha una opció de límits suaus i estrictes.
Per augmentar el límit, pot afegir les següents línies en el seu /etc/security/limits.conf
:
mysql soft nofile 65535mysql hard nofile 65535
Serà necessari reiniciar el sistema després de la qual cosa mysql
l’usuari podrà veure i utilitzar els nous límits. Això es pot comprovar com:
$ ulimit -Sn65535$ ulimit -Hn65535
Límits de recursos: mida de l’arxiu principal
Linux limita la mida dels arxius centrals com es va veure en el cas anterior. Novament, això té un límit suau i rígid i, per defecte, el límit suau s’estableix en 0, el que deshabilita efectivament la generació d’arxius centrals. Per permetre la generació d’arxius centrals (altres configuracions necessàries per a la generació d’bolcats de memòria), podem augmentar aquest valor en /etc/security/limits.conf com:
mysql soft core unlimitedmysql hard core unlimited
Després de reiniciar, mysql
l’usuari podria veure els nous valors usant ulimit
comanda com:
$ ulimit -Scunlimited$ ulimit -Hcunlimited
Configura Swappiness
el valor d’intercanvi en Linux determina la probabilitat que el sistema canviï una pàgina de la memòria a l’espai d’intercanvi configurat en el sistema . En general, el valor predeterminat s’estableix en 60, que es pot verificar des de:
sysctl vm.swappiness
El seu valor pot oscil·lar entre 0 i 100, on un valor més baix significa una menor probabilitat d’intercanvi. En un servidor de bases de dades que executa només MariaDB, voldríem reduir aquest valor a 0 per evitar l’ús de swap tant com sigui possible. Tingueu en compte aquí que la configuració de la valor d’intercanvi de 0 s’ha de fer amb precaució considerant altres factors de disseny de sistema, ja que en el cas d’un alt ús de memòria o càrrega d’E / S, hi ha la possibilitat que el nucli elimini el procés de memòria insuficient (OOM).
Atès que es recomana una configuració d’intercanvi baixa per les càrregues de treball de la base de dades i, com a tal, per a les bases de dades MariaDB, es recomana establir l’intercanvi en un valor de 1. Pot afegir la línia següent /etc/sysctl.conf
perquè aquest canvi sigui persistent:
vm.swappiness = 1
Els canvis entraran en vigor després de la represa de sistema, tot i que sempre pot fer-ho amb anticipació usant sysctl
comandament:
sysctl -w vm.swappiness=1
Optimitzacions de sistema de fitxers
Per MariaDB, els millors sistemes d’arxius de Linux generalment es consideren ext4
, XFS
i Btrfs
que estan tots inclosos en el nucli principal de Linux i són àmpliament compatibles.Aquests sistemes d’arxius estan disponibles a la majoria de les distribucions de Linux. Cada sistema d’arxius té les seves propietats i característiques úniques i es pot triar segons els requisits després d’una revisió adequada.
A més, és poc probable que necessiti registrar el temps d’accés a l’arxiu en un servidor de bases de dades. Podem desactivar això per millorar el rendiment. Podeu muntar el sistema de fitxers rellevant amb noatime
opció o afegir a les opcions de muntatge en /etc/fstab
arxiu per fer-ho persistent.
Optimització de base de dades
Hi ha diversos paràmetres optimitzables interns a el funcionament de MariaDB que es poden personalitzar en funció dels requisits i necessitats de cadascú.
Discutirem alguns d’ells aquí.
MariaDB es configura principalment per my.cnf
arxiu.
On Ubuntu, pots trobar my.cnf
a:
/etc/mysql/my.cnf
Mentrestant CentOS està ubicat a:
/etc/my.cnf
Es pot consultar documentació detallada sobre quines variables estan disponibles per ajustar a l’arxiu de configuració des d’aquí.
Molt també depèn de el tipus de motor utilitzat per MariaDB, a saber, MyISAM
i InnoDB or XtraDB
. Tots dos tenen els seus propis pros i contres i triar un depèn dels requisits de la base de dades i l’aplicació.
Hauríem establir innodb_buffer_pool_size
aproximadament a l’80% del seu memòria. Això assegura que el 80% del seu conjunt de treball estigui en la memòria.
Alguns dels altres paràmetres ajustables importants són:
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
Es poden trobar més detalls sobre l’ajust de variables InnoDB o XtraDB aquí. Consulteu aquest per a totes les opcions d’ajust disponibles per MariaDB.
Si està interessat, consulteu aquests recursos per aprendre SQL i NoSQL.
Conclusió
MariaDB és una de les opcions populars quan es tracta de DBMS de relació. Sent De codi obert amb una comunitat diversa es suma més d’això.
Per obtenir més informació, consulteu la seva documentació que inclou temes com SQL bàsic, migració, Administració de MariaDB, alta disponibilitat, ajust de rendiment, motors d’emmagatzematge, programació i personalització. També pot voler desactivar el registre binari si no fa servir un clúster.