sql >> Database teknologi >  >> RDS >> MariaDB

Sådan installeres, sikres og ydeevneindstilling af MariaDB-databaseserveren

En databaseserver er en kritisk komponent i den netværksinfrastruktur, der er nødvendig for nutidens applikationer. Uden muligheden for at gemme, hente, opdatere og slette data (når det er nødvendigt), bliver anvendeligheden og omfanget af web- og desktop-apps meget begrænset.

Derudover er det en vigtig færdighed, som enhver systemadministrator skal have.

I denne artikel vil vi kort gennemgå, hvordan man installerer og sikrer en MariaDB-databaseserver, og derefter vil vi forklare, hvordan man konfigurerer den.

Installation og sikring af en MariaDB-server

I CentOS 7.x , MariaDB erstattede MySQL, som stadig kan findes i Ubuntu (sammen med MariaDB). Det samme gælder for openSUSE .

For kortheds skyld vil vi kun bruge MariaDB i denne tutorial, men vær opmærksom på, at udover at have forskellige navne og udviklingsfilosofier, både Relationel DataBase Management Systems (RDBMS'er kort sagt) er næsten identiske.

Det betyder, at kommandoerne på klientsiden er de samme på begge MySQL og MariaDB , og konfigurationsfilerne er navngivet og placeret de samme steder.

For at installere MariaDB skal du gøre:

--------------- On CentOS/RHEL 7 and Fedora 23 --------------- 
# yum update && yum install mariadb mariadb-server # CentOS 

--------------- On Debian and Ubuntu --------------- 
$ sudo aptitude update && sudo aptitude install mariadb-client mariadb-server 

--------------- On openSUSE --------------- 
# zypper update && zypper install mariadb mariadb-tools # openSUSE

Bemærk, at i Ubuntu , vil du blive bedt om at indtaste en adgangskode for RDBMS root-brugeren.

Når ovenstående pakker er blevet installeret, skal du sørge for, at databasetjenesten kører og er blevet aktiveret til at starte ved opstart (i CentOS og openSUSE du bliver nødt til at udføre denne handling manuelt, hvorimod i Ubuntu installationsprocessen har allerede taget hånd om det for dig):

--------------- On CentOS/RHEL 7 and Fedora 23 --------------- 
# systemctl start mariadb && systemctl enable mariadb 

--------------- On openSUSE --------------- 
# systemctl start mysql && systemctl enable mysql

Kør derefter mysql_secure_installation manuskript. Denne proces giver dig mulighed for at:

  1. indstil/nulstil adgangskoden for RDBMS root-brugeren
  2. fjern anonyme logins (således gør det kun brugere med en gyldig konto i stand til at logge ind på RDBMS)
  3. deaktiver root-adgang for andre maskiner end localhost
  4. fjern testdatabasen (som alle kan få adgang til)
  5. aktiver ændringerne forbundet med 1 til 4.

For en mere detaljeret beskrivelse af denne proces, kan du henvise til afsnittet Post installation i Installer MariaDB-databasen i RHEL/CentOS/Fedora og Debian/Ubuntu.

Konfiguration af MariaDB-server

Standardkonfigurationsindstillingerne læses fra følgende filer i den givne rækkefølge:/etc/mysql/my.cnf , /etc/my.cnf , og ~/.my.cnf .

Oftest kun /etc/my.cnf eksisterer. Det er på denne fil, vi indstiller server-dækkende indstillinger (som kan tilsidesættes med de samme indstillinger i ~/.my.cnf for hver bruger).

Den første ting, vi skal bemærke om my.cnf er, at indstillinger er organiseret i kategorier (eller grupper), hvor hvert kategorinavn er omgivet af firkantede parenteser.

Serversystemkonfigurationer er angivet i [mysqld] sektion, hvor du typisk kun finder de to første indstillinger i nedenstående tabel. Resten er andre ofte brugte muligheder (hvor angivet, vil vi ændre standardværdien med en brugerdefineret, som vi vælger):

Indstilling og beskrivelse Standardværdi
datadir er den mappe, hvor datafilerne er gemt. datadir=/var/lib/mysql
socket angiver navnet og placeringen af ​​den socket-fil, der bruges til lokale klientforbindelser. Husk, at en socket-fil er en ressource, der bruges til at videregive information mellem programmer. socket=/var/lib/mysql/mysql.sock
bind_address er den adresse, hvor databaseserveren lytter efter TCP/IP-forbindelser. Hvis du har brug for, at din server lytter på mere end én IP-adresse, skal du udelade denne indstilling (0.0.0.0, hvilket betyder, at den vil lytte på alle IP-adresser, der er tildelt denne specifikke vært).

Vi vil ændre dette for at instruere tjenesten om kun at lytte på sin hovedadresse (192.168.0.13):

bind_address=192.168.0.13

bind_adresse=0.0.0.0
port repræsenterer den port, hvor databaseserveren vil lytte.

Vi vil erstatte standardværdien (3306) med 20500 (men vi skal sikre os, at intet andet bruger den port):
port=20500

Mens nogle mennesker vil hævde, at sikkerhed gennem sløring ikke er god praksis, er ændring af standardapplikationsportene til højere en rudimentær -men effektiv-metode til at modvirke portscanninger.

port=3306
innodb_buffer_pool_size er bufferpuljen (i bytes) af hukommelse, der er allokeret til data og indekser, der tilgås hyppigt, når man bruger Innodb (som er standard i MariaDB) eller XtraDB som lagermotor.

Vi vil erstatte standardværdien med 256 MB:

innodb_buffer_pool_size=256M

innodb_buffer_pool_size=134217728
skip_name_resolve angiver, om værtsnavne vil blive løst eller ej på indgående forbindelser. Hvis indstillet til 1, som vi vil gøre i denne vejledning, kun IP-adresser.

Medmindre du kræver værtsnavne for at bestemme tilladelser, er det tilrådeligt at deaktivere denne variabel (for at fremskynde forbindelser og forespørgsler) ved at indstille dens værdi til 1:

skip_name_resolve=1

skip_name_resolve=0
query_cache_size repræsenterer størrelsen (i bytes) tilgængelig for forespørgselscachen på disken, hvor resultaterne af SELECT-forespørgsler gemmes til fremtidig brug, når en identisk forespørgsel (til den samme database og med samme protokol og samme tegnsæt) udføres.

Du bør vælge en forespørgselscachestørrelse, der matcher dine behov baseret på 1) antallet af gentagne forespørgsler og 2) det omtrentlige antal poster, som disse gentagne forespørgsler forventes at returnere. Vi indstiller denne værdi til 100 MB indtil videre:

query_cache_size=100M

query_cache_size=0 (hvilket betyder, at den er deaktiveret som standard)
max_connections er det maksimale antal samtidige klientforbindelser til serveren. Vi vil sætte denne værdi til 30:
max_connections=30Hver forbindelse vil bruge en tråd og vil derfor optage hukommelse. Tag dette i betragtning, når du indstiller max_connections.
max_connections=151
thread_cache_size angiver antallet af tråde, som serveren allokerer til genbrug, efter at en klient afbryder forbindelsen og frigiver tråd(e) tidligere i brug. I denne situation er det billigere (ydelsesmæssigt) at genbruge en tråd end at instantiere en ny.

Igen afhænger dette af antallet af forbindelser, du forventer. Vi kan roligt indstille denne værdi til halvdelen af ​​antallet af max_connections:

thread_cache_size=15

thread_cache_size=0 (deaktiveret som standard)

I CentOS , bliver vi nødt til at fortælle SELinux for at tillade MariaDB at lytte på en ikke-standard port (20500 ) før du genstarter tjenesten:

# yum install policycoreutils-python
# semanage port -a -t mysqld_port_t -p tcp 20500

Genstart derefter MariaDB-tjenesten.

Justering af MariaDB-ydelse

For at hjælpe os med at kontrollere og justere konfigurationen i henhold til vores specifikke behov, kan vi installere mysqltuner (et script, der vil give forslag til at forbedre ydeevnen af ​​vores databaseserver og øge dens stabilitet):

# wget https://github.com/major/MySQLTuner-perl/tarball/master
# tar xzf master

Skift derefter mappe til mappen udtrukket fra tarball (den nøjagtige version kan variere i dit tilfælde):

# cd major-MySQLTuner-perl-7dabf27

og kør det (du bliver bedt om at indtaste legitimationsoplysningerne for din administrative MariaDB-konto)

# ./mysqltuner.pl

Outputtet af scriptet er i sig selv meget interessant, men lad os springe til bunden, hvor de variabler, der skal justeres, er angivet med den anbefalede værdi:

query_cache_type indstilling angiver, om forespørgselscachen er deaktiveret (0) eller aktiveret (1) . I dette tilfælde mysqltuner råder os til at deaktivere det.

Så hvorfor rådes vi til at deaktivere det nu? Årsagen er, at forespørgselscachen er nyttig for det meste i scenarier med høj læse-/lavskrivning (hvilket ikke er vores tilfælde, da vi lige har installeret databaseserveren).

ADVARSEL :Før du foretager ændringer i konfigurationen af ​​en produktionsserver, opfordres du stærkt til at konsultere en ekspertdatabaseadministrator for at sikre, at en anbefaling givet af mysqltuner ikke vil påvirke en eksisterende indstilling negativt.

Oversigt

I denne artikel har vi forklaret, hvordan man konfigurerer en MariaDB-databaseserver, efter at vi har installeret og sikret den. Konfigurationsvariablerne, der er angivet i tabellen ovenfor, er kun nogle få indstillinger, som du måske vil overveje, mens du forbereder serveren til brug, eller når du justerer den senere. Se altid den officielle MariaDB-dokumentation, før du foretager ændringer, eller se vores MariaDB Performance tuning-tips:

Don' t Miss: 15 nyttige MariaDB Performance Tuning og optimeringstip

Som altid, tøv ikke med at give os besked, hvis du har spørgsmål eller kommentarer til denne artikel. Er der andre serverindstillinger, du kan lide at bruge? Du er velkommen til at dele med resten af ​​fællesskabet ved at bruge kommentarformularen nedenfor.

Bliv en Linux-certificeret systemadministrator
  1. Brug af Hibernate-forespørgsel:kolon bliver behandlet som parameter / escapende kolon

  2. Sammenligning af høj tilgængelighed af databaser - MySQL / MariaDB-replikering vs Oracle Data Guard

  3. Sådan bruges FILEPROPERTY() i SQL Server

  4. Sådan formateres dato og klokkeslæt i MySQL