Cum se instalează Mariadb și configure pentru a obține cea mai bună performanță în Ubuntu și Centos?

Să învățăm să instalăm și să configuram Mariadb, un sistem popular de gestionare a bazei de date relaționale open source (RDBMS).

este dezvoltat de Comunitate și are sprijinul comercial opțiune. Se intenționează ca Mariadb să rămână foarte compatibilă cu MySQL, deși există unele deviații.

În acest articol, vom acoperi instalarea și configurarea MariadB la Ubuntu 20.x și Centos 7.x / 8. x și la final vom examina unele dintre cele mai bune practici pentru a vă asigura și îmbunătăți performanța lor.

mariadb în Ubuntu

în Ubuntu 20.x, Mariadb este disponibil direct de la implicit depozite. Vom folosi apt pentru această sarcină.

Prima actualizare a datelor de la depozitele APT prin:

$ sudo apt update

Odată ce datele sunt actualizate de la Depozitul, rulează:

$ sudo apt install mariadb-server

Aceasta va instala Mariadb și pachetele necesare. Confirmați cu „y” pentru orice mesaj pe care îl puteți primi în timpul executării comenzii anterioare.

Do you want to continue? Y

mariadb în cenți 7.x

Pentru CentOS 7.x, versiunea MariadB disponibilă în depozitul implicit CentOS este 5.x. Vom instala cea mai recentă versiune disponibilă a lui Mariadb.

Pentru aceasta, trebuie mai întâi să configuram un depozit suplimentar YUM. Mariadb oferă o modalitate simplă de a utiliza mariadb_repo_setup script. Pentru a configura depozitul, rulați următoarele comenzi în sistemul dvs. 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

Acest script va configura depozitul dorit YUM pentru a instala cea mai recentă versiune a Mariadb automat. La momentul scrierii acestui articol, este 10.x.

sau în cazul în care doriți să mergeți manual, puteți configura un depozit manual YUM creând un nou fișier de depozit, cum ar fi:

Adăugați următoarele detalii în fișierul de depozit și salvați-l:

name = MariaDBbaseurl = http://yum.mariadb.org/10.5/centos7-amd64gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDBgpgcheck=1

acum pentru a instala Mariadb, rulați următoarea comandă:

$ sudo yum install MariaDB-server

confirmați orice mesaj care apare în timpul instalării introducând „Y”:

Is this ok : y

Aceasta completează instalarea serverului Mariadb și a pachetelor dependente.

Mariadb în CentOS 8.x

pentru 8.x CentOS, versiunea disponibilă Din depozitele defaulente este de 10,3 sau mai recente. Putem instala MARIADB direct utilizând comanda DNF:

altfel, pentru a obține cea mai recentă versiune disponibilă, puteți urma metoda manuală așa cum este indicat în secțiunea anterioară la CentOS 7.x și care ar trebui să vă ajute să lucrați Pentru a activa și a porni manual serviciile relevante.

În orice caz, atât Ubuntu și CentOS, rulați următoarele comenzi pentru a porni serviciul Mariadb, activați-l la pornire și verificați-l:

ieșire:

$ 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.$

Asigurarea MariaDB

ca prim pas după instalarea MariadB, Trebuie să asigurăm implementarea acestuia prin stabilirea unei parole rădăcină, dezactivând datele de conectare a rădăcinilor la distanță, eliminând baza de date de testare, precum și Utilizatori anonimi și, în cele din urmă, reamintind privilegiile.

rulați următoarea comandă Mariadb Harden:

$ sudo mysql_secure_installation

Puteți urmări indicațiile implicite cu acțiunile sugerate cu excepția cazului în care aveți o cerință specifică de a vă abate.

ieșire:

$ 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!$

Aici vom folosi autentificarea sistemului, așa că nu avem Configurați o parolă de rădăcină separată pentru Mariadb, deoarece este deja în siguranță. Dacă este necesar, puteți configura întotdeauna o parolă de rădăcină separată.

validarea configurației

Pentru a verifica configurația Mariadb, rulați (specificați parola pe care ați setat-o în timp ce mysql_secure_installation sau, dacă omite La acea vreme, utilizați acreditările rădăcină ale sistemului dvs.):

$ 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$

Puteți configura un nou cont de administrator în loc de rădăcină, după cum se arată mai jos (modificați valoarea din password cu care intenționați să setați admin contabil:

$ 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$

Verificați accesul cu utilizatorul nou

AS (introducețipasswordașa cum este prezentat în etapa anterioară):$ 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$

Optimizarea OS

După instalarea și asigurarea setărilor dvs. MariadB, trebuie să luați măsuri pentru a vă ajusta sistemul de operare și baza de date pentru o performanță optimă. Această setare va varia în funcție de configurația sistemului dvs., de tipul de utilizare, numărul de utilizatori și de alți factori.

Din perspectiva sistemului de operare, unii parametri de sistem pot fi configurați pentru Mariadb că noi Va discuta acum.

Configurația kernel-ului Linux – programator I / O

Programatorii recomandați I / O pentru Mariadb sunt noop și deadline. Pentru a verifica folosirea

poate fi efectuată o modificare temporară prin emiterea următoarei comandă și efectul acesteia, Dacă există, va fi imediat cu privire la performanța sistemului:

$ sudo echo noop > /sys/block/sda/queue/scheduler

Pentru a fi persistentă, trebuie să o configurați în fișierul de configurare GRUB așa cum se arată Mai jos în /etc/default/grub, reconstruiți grub și reporniți sistemul.

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash elevator=noop"

Limite de resurse: limita de fișiere deschise

Linux limitează în general numărul descriptorilor de fișiere pe care fiecare proces îl poate deschide. Pentru un sistem activ de baze de date, această limită poate depăși sau afecta cu ușurință performanța. În multe sisteme Linux, această limită implicită este de 1024. În plus, există o opțiune netedă și strictă.

Pentru a mări limita, puteți adăuga următoarele linii în /etc/security/limits.conf:

iv id = „0203Adba0e”

Va fi necesar să reporniți sistemul după care mysql Utilizatorul poate vedea și să utilizați noile limite. Acest lucru poate fi verificat ca:

$ ulimit -Sn65535$ ulimit -Hn65535

Limitele resurselor: dimensiunea fișierului principal

Linux limitează dimensiunea fișierelor centrale ca SE SE El a văzut în cazul precedent. Din nou, aceasta are o limită moale și rigidă, în mod implicit, limita moale este setată la 0, care dezactivează efectiv generarea de fișiere centrale. Pentru a permite generarea de fișiere centrale (alte configurații necesare pentru generarea de răsturnări de memorie), putem crește această valoare la /etc/security/limits.conf ca:

mysql soft core unlimitedmysql hard core unlimited

După repornirea sistemului, mysql utilizatorul ar putea vedea noile valori folosind ulimit ca:

stock swapiess

valoarea de schimb din Linux determină probabilitatea ca sistemul să schimbe o pagină de memorie la spațiul de schimb configurat în sistem. De obicei, valoarea implicită este setată la 60, care poate fi verificată de la:

sysctl vm.swappiness

Valoarea sa poate oscila între 0 și 100, unde o valoare plus un mijloc scăzut o probabilitate mai mică de schimb. Pe un server de baze de date care rulează numai Mariadb, am dori să reducem această valoare la 0 pentru a evita utilizarea swap cât mai mult posibil. Rețineți că configurația valorii de schimb de 0 ar trebui făcută cu prudență, având în vedere și alți factori de proiectare a sistemului, deoarece în cazul utilizării ridicate a memoriei sau a încărcăturii I / O, există o posibilitate ca kernelul să elimine procesul de memorie insuficient ( OOM).

Deoarece o configurație de schimb scăzut este recomandată pentru volumul de lucru al bazei de date și, ca atare, pentru bazele de date MariadB, se recomandă să stabilească schimbul la o valoare de 1. Puteți adăuga următoarea linie /etc/sysctl.conf

vm.swappiness = 1

Modificările vor intra în vigoare după repornirea sistemului, deși tu poate face întotdeauna acest lucru în avans folosind sysctl:

sysctl -w vm.swappiness=1

Optimizări ale sistemului de fișiere

Pentru Mariadb, cele mai bune sisteme de fișiere Linux sunt în general considerate ext4, XFS și iv id = „CD28680b96” care sunt incluse în kernelul principal Linux și sunt pe scară largă compatibile.Aceste sisteme de fișiere sunt disponibile în majoritatea distribuțiilor Linux. Fiecare sistem de fișiere are proprietățile și caracteristicile unice și poate fi aleasă în funcție de cerințele după o revizuire adecvată.

În plus, este puțin probabil să înregistreze timpul de acces la fișierul de pe un server de bază pentru date. Putem dezactiva acest lucru pentru a îmbunătăți performanța. Puteți monta sistemul de fișiere relevant cu opțiunea noatime sau adăugați-l în opțiunile de montare din fișierul /etc/fstab pentru a fi persistente.

Optimizarea bazei de date

Există mai mulți parametri optimizabili interni la operația Mariadb care poate fi personalizată pe baza cerințelor și a nevoilor fiecăruia.

Vom discuta pe unii dintre ei aici aici .

mariadb este setat în principal de my.cnf.

pe ubuntu, puteți găsi my.cnf la:

divid id = „C1cb099661”>

Între timp Kille CentOS este situat în:

/etc/my.cnf

se poate consulta o documentație detaliată despre care sunt disponibile variabile pentru a ajusta fișierul de configurare de aici.

De asemenea, depinde de tipul motorului utilizat de Mariadb, și anume MyISAM și InnoDB or XtraDB. Ambele au propriile lor pro și contra și aleg unul depinde de cerințele bazei de date și de aplicație.

Ar trebui să setăm innodb_buffer_pool_size aproximativ 80% din memoria sa. Acest lucru asigură că 80% din setul de lucru este în memorie.

Unii dintre ceilalți parametri reglabili importanți sunt:

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

Mai multe detalii Despre ajustarea variabilelor INNODB sau XDRADB pot fi găsite aici. Vedeți acest lucru pentru toate opțiunile de ajustare disponibile pentru Mariadb.

Dacă sunteți interesat, verificați aceste resurse pentru a învăța SQL și NOSQL.

Concluzie

Mariadb este una dintre opțiunile populare atunci când vine vorba de DBMS de relație. Fiind open source cu o comunitate diversă adaugă mai mult la el.

Pentru mai multe informații, consultați documentația dvs. care include subiecte precum SQL de bază, migrație, administrare Mariadb, disponibilitate ridicată, ajustarea performanței, stocarea motoarelor, programarea și programarea personalizare. De asemenea, este posibil să doriți să dezactivați înregistrarea binară dacă nu utilizați un cluster.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *