I denne artikkelen skal jeg vise deg hvordan du kjører flere MARIADB -databaseserverforekomster på samme datamaskin/server som kjører Ubuntu 20.04 LTS -operativsystem. Så la oss komme i gang.
Installere MARIADB -databaseserver:
Oppdater først Apt Package Repository Cache med følgende kommando:
$ sudo apt oppdatering
Du kan installere MariaDB -databaseserveren med følgende kommando:
$ sudo apt installer MariaDB-klient MariaDB-server
For å bekrefte installasjonen, trykk Y Og trykk deretter .
MariaDB blir installert. Det kan ta en stund å fullføre.
På dette tidspunktet bør MariaDB installeres.
Stopper MariaDB -databasetjenesten:
Du kan sjekke om mysql Databasetjeneste kjører med følgende kommando:
$ sudo systemctl status mysql
De mysql Databasetjeneste skal kjøres som standard som du kan se på skjermdumpen nedenfor.
Siden vi ønsker å kjøre flere forekomster av MariaDB -databaseserverprogramvaren, trenger vi ikke standard mysql Systemd -tjeneste for å kjøre. Vi kjører MariaDB -databaseforekomstene manuelt.
Så stopp mysql Databasetjeneste med følgende kommando:
$ sudo systemctl stopp mysql
De mysql Databasetjeneste skal stoppes.
$ sudo systemctl status mysql
Vi vil også fjerne mysql Databasetjeneste fra systemstart av Ubuntu 20.04 LTS. Slik at det ikke starter automatisk på oppstart.
Å fjerne mysql Tjeneste fra systemoppstarten, kjør følgende kommando:
$ sudo systemctl deaktiver mysql
Konfigurere MARIADB for å kjøre flere databaseforekomster:
Alle MARIADB -databasekonfigurasjonsfilene er i /etc/mysql/mariadb.konf.d/ katalog.
For å gjøre det lettere å jobbe med MariaDB -konfigurasjonsfilene, navigerer du til /etc/mysql/mariadb.konf.d/ Katalog som følger:
$ cd/etc/mysql/mariaDB.konf.d/
Vi trenger ikke standard MariaDB -konfigurasjonsfilen 50-server.CNF fil lenger.
For å sikre at denne konfigurasjonsfilen ikke blir lest av MariaDB -serveren, må du gi nytt navn til MARIADB -konfigurasjonsfilen 50-server.CNF til 50-server.CNF.Sikkerhetskopi med følgende kommando:
$ sudo mv -v 50 -server.CNF 50-server.CNF.Sikkerhetskopi
Opprett en ny MariaDB -konfigurasjonsfil 50-server-multi.CNF med følgende kommando:
$ sudo nano 50-server-multi.CNF
Skriv inn følgende linjer i 50-server-multi.CNF fil.
[mysqld_multi]
mysqld =/usr/bin/mysqld_safe
mysqladmin =/usr/bin/mysqladmin
Log =/var/log/mysql/mysqld_multi.Logg
bruker = multi_admin
Passord = hemmelighet
Når du er ferdig, trykk + X etterfulgt av Y og For å redde 50-server-multi.CNF fil.
Her blir MariaDB -serverloggene lagret i filen /var/log/mysql/mysqld_multi.Logg.
De mysqld_multi Admin brukernavn vil være multi_admin Og passordet vil være hemmelig. Dette er nødvendig for å tillate SKRU AV Tillatelse til MariaDB -databaseserverforekomstene.
I denne artikkelen vil jeg kjøre 3 MariaDB -databaseforekomster for demonstrasjonen. Hver av MariaDB -databaseforekomstene vil ha sin egen konfigurasjonsfil.
Opprett en konfigurasjonsfil 50-server1.CNF For den første MariaDB -databaseserveren Instace som følger:
$ sudo nano 50-server1.CNF
Skriv inn følgende linjer i 50-server1.CNF fil.
[mysqld1]
Bruker = MySQL
pid-fil =/run/mysqld/mysqld1.PID
socket =/run/mysqld/mysqld1.sokk
Basertir = /usr
Datadir =/var/lib/mysql1
tmpdir = /tmp
LC-Messages-Dir =/usr/share/mysql
Bind-adresse = 127.0.0.1
query_cache_size = 16m
log_error =/var/log/mysql/mysqld1_error.Logg
utløp_logs_days = 10
karakter-set-server = utf8mb4
COLLATION-SERVER = UTF8MB4_GENERAL_CI
Port = 20101
Når du er ferdig, trykk + X etterfulgt av Y og For å redde 50-server1.CNF fil.
Her, mysqld1 er forekomstnavnet. For andre omgang vil det være mysqld2 og så videre.
Stien til PID -filen vil være /løp/mysqld/mysqld1.PID og sokkelfil vil være /løp/mysqld/mysqld1.sokk for mysqld1 forekomst. Disse vil være forskjellige for hver av MariaDB -forekomstene.
Datakatalogen for mysqld1 forekomst vil være /var/lib/mysql1. Det vil være annerledes for hver av MariaDB -forekomstene.
Feilloggfilbanen for mysqld1 forekomst vil være /var/log/mysql/mysqld1_error.Logg. Det vil være annerledes for hver av MariaDB -forekomstene.
Porten til mysqld1 forekomst vil være 20101. Det vil være annerledes for hver av MariaDB -forekomstene.
Konfigurasjonsfilen for den andre og den tredje MariaDB -forekomsten vil være lik den første MariaDB -forekomsten. Så vi kan bare kopiere den første MARIADB -forekomstkonfigurasjonsfilen 50-server1.CNF og gjør små justeringer.
Kopier 50-server1.CNF For å opprette en ny konfigurasjonsfil 50-server2.CNF For den andre MariaDB -forekomsten som følger:
$ sudo cp -v 50 -server1.CNF 50-server2.CNF
På samme måte, kopier 50-server1.CNF For å opprette en ny konfigurasjonsfil 50-server3.CNF For den tredje MariaDB -forekomsten som følger:
$ sudo cp -v 50 -server1.CNF 50-server2.CNF
For å gjøre justeringer av den andre MARIADB -serverforekomstkonfigurasjonsfilen 50-server2.CNF, Åpne den med Nano Text Editor som følger:
$ sudo nano 50-server2.CNF
Juster de merkede delene av konfigurasjonsfilen 50-server2.CNF.
Når du er ferdig, trykk + X etterfulgt av Y og For å redde 50-server2.CNF fil.
For å gjøre justeringer av den tredje MARIADB -serverforekomstkonfigurasjonsfilen 50-server3.CNF, Åpne den med Nano Text Editor som følger:
$ sudo nano 50-server3.CNF
Juster de merkede delene av konfigurasjonsfilen 50-server3.CNF.
Når du er ferdig, trykk + X etterfulgt av Y og For å redde 50-server3.CNF fil.
Opprette MariaDB -loggfilene:
Lag en loggfil mysqld_multi.Logg i /var/log/mysql/ katalog for mysqld_multi program som følger:
$ sudo touch/var/log/mysql/mysqld_multi.Logg
Sett eieren (til mysql) og gruppe (til adm) av mysqld_multi.Logg fil med følgende kommando:
$ sudo chown -v mysql: adm/var/log/mysql/mysqld_multi.Logg
Angi riktig filtillatelser til mysqld_multi.Logg fil med følgende kommando:
$ sudo chmod -v u = rw, g = rw, o =/var/log/mysql/mysqld_multi.Logg
Lag feilloggfiler for mysqld1, mysqld2, og mysqld3 MariaDB -forekomster med følgende kommando:
$ sudo touch/var/log/mysql/mysqld 1… 3 _error.Logg
Endre eieren (til mysql) og gruppe (til adm) av feilloggfilene til mysqld1, mysqld2, og mysqld3 MariaDB -forekomster med følgende kommando:
$ sudo chown -v mysql: adm/var/log/mysql/mysqld 1… 3 _error.Logg
Angi riktig filtillatelser til feilloggfilene til mysqld1, mysqld2, og mysqld3 MariaDB -forekomster med følgende kommando:
$ sudo chmod -v u = rw, g = rw, o =/var/log/mysql/mysqld 1… 3 _error.Logg
Opprette og utarbeide MariaDB -datakatalogene:
Lag MariaDB -datakataloger for mysqld1, mysqld2, og mysqld3 MariaDB -forekomster med følgende kommando:
$ sudo mkdir -v/var/lib/mysql 1… 3
Endre eieren og gruppen av hver av datakatalogene til mysql med følgende kommando:
$ sudo chown -v mysql: mysql/var/lib/mysql 1… 3
Sett riktige tillatelser til hver av datakatalogene med følgende kommando:
$ sudo chmod -v u = rwx, g = rx, o = rx/var/lib/mysql 1 ... 3
Når eieren, gruppen og filtillatelsene er riktig angitt, skal alle MARIADB -datakatalogene se ut som vist på skjermdumpen nedenfor:
$ ls -lhd/var/lib/mysql*
Nå må du utarbeide MariaDB -datakatalogene. For å gjøre det, kan du bruke mysql_install_db kommando.
For å utarbeide MariaDB -datakatalogen /var/lib/mysql1 for mysqld1 Forekomst, kjør følgende kommando:
$ sudo mysql_install_db --bruker = mysql --datadir =/var/lib/mysql1
Datakatalogen /var/lib/mysql1 skal være klar for mysqld1 forekomst.
På samme måte, utarbeide MariaDB -datakatalogen /var/lib/mysql2 for mysqld2 forekomst med følgende kommando:
$ sudo mysql_install_db --bruker = mysql --datadir =/var/lib/mysql2
Datakatalogen /var/lib/mysql2 skal være klar for mysqld2 forekomst.
Forbered også MariaDB -datakatalogen /var/lib/mysql3 for mysqld3 forekomst med følgende kommando:
$ sudo mysql_install_db --bruker = mysql --datadir =/var/lib/mysql3
Datakatalogen /var/lib/mysql3 skal være klar for mysqld3 forekomst.
Kjører flere MariaDB -forekomster:
Nå kan du kjøre flere MariaDB -forekomster ved å bruke mysqld_multi program.
Du kan sjekke om MariaDB -forekomstene mysqld1, mysqld2, og mysqld3 kjører med følgende kommando:
$ sudo mysqld_multi rapport
Som du kan se, kjører ikke MariaDB -forekomstene for øyeblikket.
Du kan starte alle MariaDB -databaseserverforekomstene med følgende kommando:
$ sudo mysqld_multi start
Som du kan se, forekomster fra MariaDB -databaseserveren mysqld1, mysqld2, og mysqld3 løper.
$ sudo mysqld_multi rapport
Som du kan se, MariaDB -databaseportene 20101 (til mysqld1), 20102 (til mysqld2), og 20103 (til mysqld3) lytter. Så MariaDB -databaseforekomstene kjører perfekt.
GJENNOMGANG TILDELING TILLATT TIL MARIADB -databaseforekomstene:
mysqld_multi trenger å ha SKRU AV Tillatelse til å kunne stoppe MariaDB -databaseforekomstene. Å gi nedleggelses tillatelse til mysqld_multi, Du må logge inn på hver av MariaDB -databaseforekomstene, opprette en multi_admin Bruker (med påloggingspassordet hemmelig), og gi SKRU AV tillatelse til multi_admin bruker.
Først, logg inn på den første MariaDB -databaseserverforekomsten mysqld1 med følgende kommando:
$ sudo mysql -s/run/mysqld/mysqld1.sokk -u rot
Du skal være logget inn.
For å opprette en ny bruker multi_admin med passordet hemmelig og gi SKRU AV tillatelse til multi_admin Bruker, kjør følgende SQL -setning:
MariaDB [(ingen)]> Tilskuddsavslutning på *.* Til 'multi_admin'@'localhost' identifisert av 'hemmelighet';
Avslutt ut av MariaDB -databasekonsollen med følgende kommando:
MariaDB [(Ingen)]> Avslutt
På samme måte kan du logge på den andre MariaDB -databaseserverforekomsten mysqld2 med følgende kommando:
$ sudo mysql -s/run/mysqld/mysqld2.sokk -u rot
Opprett en ny bruker multi_admin med passordet hemmelig og gi SKRU AV tillatelse til multi_admin Bruker med følgende SQL -setning:
MariaDB [(ingen)]> Tilskuddsavslutning på *.* Til 'multi_admin'@'localhost' identifisert av 'hemmelighet';
Avslutt ut av MariaDB -databasekonsollen med følgende kommando:
MariaDB [(Ingen)]> Avslutt
Logg også på den tredje MariaDB -databaseserverforekomsten mysqld3 med følgende kommando:
$ sudo mysql -s/run/mysqld/mysqld3.sokk -u rot
Opprett en ny bruker multi_admin med passordet hemmelig og gi SKRU AV tillatelse til multi_admin Bruker med følgende SQL -setning:
MariaDB [(ingen)]> Tilskuddsavslutning på *.* Til 'multi_admin'@'localhost' identifisert av 'hemmelighet';
Avslutt ut av MariaDB -databasekonsollen med følgende kommando:
MariaDB [(Ingen)]> Avslutt
La oss se om mysqld_multi kan stoppe MariaDB -databaseserverforekomstene.
Som du kan se, kjører MariaDB -databaseserverforekomstene.
$ sudo mysqld_multi rapport
For å stoppe MariaDB -databaseserverforekomstene, kjør følgende kommando:
$ sudo mysqld_multi stopp
Som du kan se, kjører ikke MariaDB -databaseserverforekomstene lenger.
$ sudo mysqld_multi rapport
MariaDB -databaseserverportene 20101 (til mysqld1), 20102 (til mysqld2), og 20103 (til mysqld3) lytter ikke så godt.
Start MariaDB -databaseserverforekomster på systemstart:
Du vil ikke starte MariaDB -databaseserverforekomstene manuelt hver gang serveren din starter. For automatisk å starte MariaDB -databaseserverforekomstene, kan du legge til startkommandoen som en cronjob.
For å legge til en hvilken som helst cronjob, må du endre crontab -filen.
For å endre crontab -filen, kjør følgende kommando:
$ sudo crontab -e
trykk 1 (For å velge Nano Text Editor) og deretter trykke på .
Crontab -filen skal åpnes. Legg til linjen som merket i skjermbildet nedenfor.
Når du er ferdig, trykk + X etterfulgt av Y og For å lagre crontab -filen.
For at endringene skal tre i kraft, start datamaskinen på nytt med følgende kommando:
$ sudo omstart
Når datamaskinen støvler, bør du se at alle MariaDB -databaseforekomstene kjører.
$ sudo mysqld_multi rapport
Som du kan se, MariaDB -databaseportene 20101 (til mysqld1), 20102 (til mysqld2), og 20103 (til mysqld3) lytter. Så MariaDB -databaseforekomstene kjører perfekt.
Konklusjon:
I denne artikkelen har jeg vist deg hvordan du kjører flere forekomster av MariaDB -databaseserveren på samme datamaskin/server ved hjelp av mysqld_multi program. Denne artikkelen skal hjelpe deg med å sette opp flere forekomster av MariaDB -databaseserveren på samme Ubuntu 20.04 LTS -datamaskin/server.