Un server de baze de date este o componentă critică a infrastructurii de rețea necesare pentru aplicațiile actuale. Fără posibilitatea de a stoca, prelua, actualiza și șterge date (atunci când este necesar), utilitatea și sfera aplicațiilor web și desktop devin foarte limitate.
În plus, știința instalării, gestionării și configurării unui server de baze de date (astfel încât să funcționeze conform așteptărilor) este o abilitate esențială pe care trebuie să o aibă fiecare administrator de sistem.
În acest articol vom analiza pe scurt modul de instalare și securizare a unui server de baze de date MariaDB și apoi vom explica cum să-l configurăm.
În CentOS 7.x, MariaDB a înlocuit MySQL, care încă poate fi găsit în Ubuntu (împreună cu MariaDB). Același lucru este valabil și pentru openSUSE.
Pentru scurtă durată, vom folosi doar MariaDB în acest tutorial, dar vă rugăm să rețineți că, pe lângă numele și filosofiile de dezvoltare diferite, ambele
Sisteme de gestionare a bazelor de date relaționale (RDBMS pe scurt) sunt aproape identice.Aceasta înseamnă că comenzile din partea clientului sunt aceleași pentru ambele MySQL și MariaDB, iar fișierele de configurare sunt denumite și localizate în aceleași locuri.
Pentru a instala MariaDB, faceți:
Pe CentOS / RHEL 7 și Fedora 23 # yum update && yum install mariadb mariadb-server # CentOS Pe Debian și Ubuntu $ sudo aptitude update && sudo aptitude install mariadb-client mariadb-server Pe openSUSE # zypper update && zypper instalează mariadb mariadb-tools # openSUSE.
Rețineți că, în Ubuntu, vi se va cere să introduceți o parolă pentru utilizatorul rădăcină RDBMS.
Odată ce pachetele de mai sus au fost instalate, asigurați-vă că serviciul de baze de date rulează și a fost activat pentru a porni la pornire (în CentOS și openSUSE va trebui să efectuați această operație manual, în timp ce în Ubuntu procesul de instalare se va ocupa deja de dvs.):
Pe CentOS / RHEL 7 și Fedora 23 # systemctl start mariadb && systemctl enable mariadb Pe openSUSE # systemctl start mysql && systemctl activate mysql.
Apoi rulați mysql_secure_installation
scenariu. Acest proces vă va permite să:
Pentru o descriere mai detaliată a acestui proces, puteți consulta secțiunea Post instalare din Instalați baza de date MariaDB în RHEL / CentOS / Fedora și Debian / Ubuntu.
Opțiunile de configurare implicite sunt citite din următoarele fișiere în ordinea dată: /etc/mysql/my.cnf
, /etc/my.cnf
, și ~ / .my.cnf
.
Cel mai adesea, numai /etc/my.cnf
există. Pe acest fișier vom seta setările la nivel de server (care pot fi anulate cu aceleași setări în ~ / .my.cnf
pentru fiecare utilizator).
Primul lucru despre care trebuie să remarcăm my.cnf
este că setările sunt organizate în categorii (sau grupuri) în care fiecare categorie nume este inclusă între paranteze pătrate.
Configurările sistemului de server sunt date în [mysqld]
, unde de obicei veți găsi doar primele două setări în tabelul de mai jos. Restul sunt alte opțiuni utilizate frecvent (acolo unde este indicat, vom schimba valoarea implicită cu una personalizată la alegerea noastră):
Setare și descriere | Valoare implicită |
datadir este directorul în care sunt stocate fișierele de date. | datadir = / var / lib / mysql |
socket indică numele și locația fișierului socket care este utilizat pentru conexiunile clientului local. Rețineți că un fișier socket este o resursă utilizată pentru a transmite informații între aplicații. | socket = / var / lib / mysql / mysql.sock |
bind_address este adresa la care serverul de baze de date va asculta conexiunile TCP / IP. Dacă aveți nevoie ca serverul dvs. să asculte pe mai multe adrese IP, lăsați această setare (0.0.0.0 ceea ce înseamnă că va asculta pe toate adresele IP atribuite acestei gazde specifice). Vom schimba acest lucru pentru a instrui serviciul să asculte numai pe adresa sa principală (192.168.0.13): bind_address = 192.168.0.13 |
bind_address = 0.0.0.0 |
port reprezintă portul în care va asculta serverul bazei de date. Vom înlocui valoarea implicită (3306) cu 20500 (dar trebuie să ne asigurăm că nimic altceva nu folosește acel port): În timp ce unii oameni vor susține că securitatea prin obscuritate nu este o bună practică, schimbarea porturile implicite ale aplicațiilor pentru cele mai mari sunt o metodă rudimentară - încă eficientă - pentru a descuraja portul scanează. |
port = 3306 |
innodb_buffer_pool_size este grupul de tampoane (în octeți) de memorie care este alocat pentru date și indici care sunt accesate frecvent când se utilizează Innodb (care este implicit în MariaDB) sau XtraDB ca stocare motor. Vom înlocui valoarea implicită cu 256 MB: innodb_buffer_pool_size = 256M |
innodb_buffer_pool_size = 134217728 |
skip_name_resolve indică dacă numele gazdelor vor fi rezolvate sau nu pe conexiunile primite. Dacă este setat la 1, așa cum vom face în acest ghid, numai adresele IP. Dacă nu aveți nevoie de nume de gazdă pentru a determina permisiunile, este recomandabil să dezactivați această variabilă (pentru a accelera conexiunile și interogările) setând valoarea sa la 1: skip_name_resolve = 1 |
skip_name_resolve = 0 |
query_cache_size reprezintă dimensiunea (în octeți) disponibilă pentru cache-ul de interogare pe disc, unde sunt rezultatele interogărilor SELECT stocate pentru utilizare ulterioară atunci când este o interogare identică (la aceeași bază de date și utilizând același protocol și același set de caractere) efectuat. Ar trebui să alegeți o dimensiune cache a interogărilor care să corespundă nevoilor dvs. pe baza 1) numărului de interogări repetitive și 2) a numărului aproximativ de înregistrări pe care se așteaptă să le returneze aceste interogări repetitive. Vom seta această valoare la 100 MB pentru moment: query_cache_size = 100M |
query_cache_size = 0 (ceea ce înseamnă că este dezactivat în mod implicit) |
max_connections este numărul maxim de conexiuni client simultane la server. Vom seta această valoare la 30: max_connections = 30 Fiecare conexiune va folosi un fir și, prin urmare, va consuma memorie. Luați în considerare acest fapt în timp ce setați max_connections. |
max_connections = 151 |
thread_cache_size indică numărul de fire pe care serverul le alocă pentru reutilizare după ce un client se deconectează și eliberează firele (thread-urile) utilizate anterior. În această situație, este mai ieftin (din punct de vedere al performanței) să refolosiți un fir decât să instanțiați unul nou. Din nou, acest lucru depinde de numărul de conexiuni pe care le așteptați. Putem seta în siguranță această valoare la jumătate din numărul de max_connections: thread_cache_size = 15 |
thread_cache_size = 0 (dezactivat implicit) |
În CentOS, va trebui să spunem SELinux a permite MariaDB pentru a asculta pe un port non-standard (20500) înainte de a reporni serviciul:
# yum instala policycoreutils-python. # semanage port -a -t mysqld_port_t -p tcp 20500.
Apoi reporniți serviciul MariaDB.
Pentru a ne ajuta în verificarea și reglarea configurației conform nevoilor noastre specifice, putem instala mysqltuner (un script care va oferi sugestii pentru a îmbunătăți performanța serverului nostru de baze de date și a crește stabilitatea acestuia):
# wget https://github.com/major/MySQLTuner-perl/tarball/master. # tar xzf master.
Apoi schimbați directorul în folderul extras din tarball (versiunea exactă poate diferi în cazul dvs.):
# cd major-MySQLTuner-perl-7dabf27.
și rulați-l (vi se va solicita să introduceți acreditările contului dvs. administrativ MariaDB)
# ./mysqltuner.pl.
Ieșirea scriptului este în sine foarte interesantă, dar să trecem la partea de jos unde sunt listate variabilele de ajustat cu valoarea recomandată:
query_cache_type
setarea indică dacă cache-ul interogării este dezactivat (0) sau activat (1). În acest caz, mysqltuner ne sfătuiește să îl dezactivăm.
Deci, de ce ni se recomandă să îl dezactivăm acum? Motivul este că memoria cache a interogării este utilă mai ales în scenarii de citire / scriere redusă (ceea ce nu este cazul nostru, deoarece tocmai am instalat serverul de baze de date).
AVERTIZARE: Înainte de a face modificări la configurația unui server de producție, sunteți încurajat să consultați un expert administrator de baze de date pentru a se asigura că o recomandare dată de mysqltuner nu va avea un impact negativ asupra unui existent setare.
În acest articol am explicat cum să configurați un server de baze de date MariaDB după ce l-am instalat și securizat. Variabilele de configurare enumerate în tabelul de mai sus sunt doar câteva setări pe care poate doriți să le luați în considerare în timp ce pregătiți serverul pentru utilizare sau când îl reglați ulterior. Consultați întotdeauna documentația oficială MariaDB înainte de a face modificări sau consultați sfaturile noastre de reglare a performanței MariaDB:
Nu ratați:15 sfaturi utile de reglare și optimizare a performanțelor MariaDB
Ca întotdeauna, nu ezitați să ne anunțați dacă aveți întrebări sau comentarii cu privire la acest articol. Există alte setări de server pe care doriți să le utilizați? Simțiți-vă liber să partajați cu restul comunității folosind formularul de comentarii de mai jos.