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:
- indstil/nulstil adgangskoden for RDBMS root-brugeren
- fjern anonyme logins (således gør det kun brugere med en gyldig konto i stand til at logge ind på RDBMS)
- deaktiver root-adgang for andre maskiner end localhost
- fjern testdatabasen (som alle kan få adgang til)
- 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): 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