Jak zainstalować, bezpieczne i dostrajanie wydajności serwera bazy danych Mariadb

Jak zainstalować, bezpieczne i dostrajanie wydajności serwera bazy danych Mariadb

Serwer bazy danych jest kluczowym elementem infrastruktury sieciowej niezbędnej dla dzisiejszych aplikacji. Bez możliwości przechowywania, pobierania, aktualizacji i usuwania danych (w razie potrzeby) przydatność i zakres aplikacji internetowych i komputerowych stają się bardzo ograniczone.

Zainstaluj, bezpieczne i dostrajanie wydajności serwera Mariadb

Ponadto wiedza o tym, jak instalować, zarządzać i konfigurować serwer bazy danych (tak aby działał zgodnie z oczekiwaniami), jest niezbędną umiejętnością, którą musi mieć każdy administrator systemu.

W tym artykule krótko przejrzymy, jak zainstalować i zabezpieczyć serwer bazy danych MariaDB, a następnie wyjaśnimy, jak ją skonfigurować.

Instalowanie i zabezpieczenie serwera Mariadb

W Centos 7.X, Mariadb zastąpił MySQL, który nadal można znaleźć w Ubuntu (wraz z Mariadb). To samo dotyczy OpenSuse.

Dla zwięzłości będziemy używać tylko Mariadb W tym samouczku, ale pamiętaj, że oprócz różnych nazwisk i filozofii rozwojowych, oba Relacyjne systemy zarządzania bazami danych (RDBMSS w skrócie) są prawie identyczne.

Oznacza to, że polecenia po stronie klienta są takie same w obu Mysql I Mariadb, a pliki konfiguracyjne są nazwane i umieszczone w tych samych miejscach.

Aby zainstalować Mariadb, zrób:

--------------- Na Centos/Rhel 7 i Fedora 23 --------------- # Yum Update && Yum Instal Mariadb Mariadb-Server # Centos --------------- Na Debian i Ubuntu --------------- Aktualizacja $ sudo aptitude && sudo aptitude instaluj mariadb-client mariadb-server --------------- Na OpenSuse --------------- # aktualizacja Zypper && Zypper Zainstaluj Mariadb Mariadb-tools # OpenSuse 

Zauważ, że w Ubuntu, Zostaniesz poproszony o wprowadzenie hasła dla użytkownika root RDBMS.

Po zainstalowaniu powyższych pakietów upewnij się, że usługa bazy danych jest uruchomiona i została aktywowana, aby rozpocząć się od rozruchu (w Centos I OpenSuse Będziesz musiał wykonać tę operację ręcznie, podczas gdy w Ubuntu Proces instalacji będzie już dla ciebie zadbany):

--------------- Na Centos/Rhel 7 i Fedora 23 --------------- # Systemctl start mariadb && Systemctl Włącz MARIADB --------------- Na OpenSuse --------------- # Systemctl Start MySQL && Systemctl Włącz MySQL 

Następnie uruchom Mysql_Secure_Instalation scenariusz. Ten proces pozwoli ci na:

  1. Ustaw / zresetuj hasło dla użytkownika root RDBMS
  2. Usuń anonimowe loginy (w ten sposób umożliwiając tylko użytkownikom z prawidłowym kontem do zalogowania się do RDBMS)
  3. Wyłącz dostęp do korzeni dla maszyn innych niż LocalHost
  4. Usuń testową bazę danych (do której każdy może uzyskać dostęp)
  5. aktywuj zmiany związane z od 1 do 4.

Aby uzyskać bardziej szczegółowy opis tego procesu, możesz zapoznać się z sekcją Post Instalację w bazie danych instalacji Mariadb w RHEL/CENTOS/FEDORA i DEBIAN/UBUNTU.

Konfigurowanie serwera Mariadb

Domyślne opcje konfiguracji są odczytywane z następujących plików w danej kolejności: /etc/mysql/my.CNF, /itp./mój.CNF, I ~/.Mój.CNF.

Najczęściej tylko /itp./mój.CNF istnieje. W tym pliku ustawym ustawienia serwera (które można zastąpić tym samym ustawieniami ~/.Mój.CNF dla każdego użytkownika).

Pierwsza rzecz, o której musimy zwrócić uwagę Mój.CNF Czy ustawienia są zorganizowane w kategorie (lub grupy), w których każda nazwa kategorii jest zamknięta w nawiasach kwadratowych.

Konfiguracje systemu serwera podano w [Mysqld] sekcja, w której zazwyczaj znajdziesz tylko dwa pierwsze ustawienia w tabeli poniżej. Reszta to inne często używane opcje (gdzie wskazano, zmienimy wartość domyślną za pomocą niestandardowego wyboru):

Ustawienie i opis Domyślna wartość
Datadir to katalog, w którym pliki danych są przechowywane. dataDir =/var/lib/mysql
Gniazdo wskazuje nazwę i lokalizację pliku gniazda używanego do lokalnych połączeń klientów. Należy pamiętać, że plik gniazda jest zasobem wykorzystywanym do przekazywania informacji między aplikacjami. Socket =/var/lib/mysql/mysql.skarpetka
BIND_ADDRESS to adres, na którym serwer bazy danych będzie słuchać połączeń TCP/IP. Jeśli potrzebujesz serwera do słuchania więcej niż jednego adresu IP, pomiń to ustawienie (0.0.0.0, co oznacza, że ​​będzie słuchać wszystkich adresów IP przypisanych do tego konkretnego hosta).

Zmienimy to, aby poinstruować usługę, aby słuchała tylko jej głównego adresu (192.168.0.13):

bind_address = 192.168.0.13

bind_address = 0.0.0.0
port reprezentuje port, w którym serwer bazy danych będzie słuchać.

Zastąpimy wartość domyślną (3306) 20500 (ale musimy upewnić się, że nic innego nie korzysta z tego portu):
Port = 20500

Podczas gdy niektórzy ludzie będą argumentować, że bezpieczeństwo poprzez niejasność nie jest dobrą praktyką, zmiana domyślnych portów aplikacji dla wyższych jest podstawową metodą efektywną zniechęcania do skanowania portów.

Port = 3306
innodb_buffer_pool_size to pula buforowa (w bajtach) pamięci, która jest przydzielana dla danych i indeksów, które są często dostępne podczas korzystania z InnOnDB (który jest domyślnie w mariaDB) lub xtradb jako silnik magazynowy.

Zastąpimy wartość domyślną 256 MB:

innodb_buffer_pool_size = 256m

innodb_buffer_pool_size = 134217728
skip_name_resolve wskazuje, czy nazwy hostów zostaną rozwiązane, czy nie w połączeniach przychodzących. Jeśli zostanie ustawione na 1, jak to zrobimy w tym przewodniku, tylko adresy IP.

O ile nie potrzebujesz nazw hostów, aby określić uprawnienia, zaleca się wyłączenie tej zmiennej (w celu przyspieszenia połączeń i zapytań) poprzez ustawianie jej wartości na 1:

skip_name_resolve = 1

skip_name_resolve = 0
Query_Cache_Size reprezentuje rozmiar (w bajtach) dostępny na pamięć podręczną zapytania na dysku, gdzie wyniki wybranych zapytań są przechowywane do przyszłego użycia, gdy wykonywane są identyczne zapytanie (z tą samą bazą danych i przy użyciu tego samego protokołu i tego samego zestawu znaków).

Powinieneś wybrać rozmiar pamięci podręcznej zapytań, który odpowiada Twoim potrzebom w oparciu o 1) liczbę powtarzających się zapytań i 2) przybliżona liczba zapisów te powtarzające się zapytania powinny zwrócić. Na razie ustawimy tę wartość na 100 MB:

query_cache_size = 100m

query_cache_size = 0 (co oznacza, że ​​jest domyślnie wyłączone)
Max_Connections to maksymalna liczba jednoczesnych połączeń klientów z serwerem. Ustawimy tę wartość na 30:
Max_Connections = 30Each Połączenie użyje wątku, a zatem pochłonie pamięć. Uwzględnij ten fakt podczas ustawiania Max_Connections.
Max_Connections = 151
Thread_Cache_Size wskazuje liczby wątków, które serwer przydziela do ponownego użycia po odłączeniu klienta i urzeczywaniu wcześniej używanych. W tej sytuacji jest tańsze (pod względem wydajności) ponowne wykorzystanie wątku niż instancja nowej.

Ponownie zależy to od liczby oczekiwanych połączeń. Możemy bezpiecznie ustawić tę wartość na połowę liczby max_connections:

Thread_Cache_Size = 15

Thread_Cache_Size = 0 (domyślnie wyłączony)

W Centos, będziemy musieli powiedzieć Selinux zezwolić Mariadb słuchać na niestandardowym porcie (20500) przed ponownym uruchomieniem usługi:

# Yum Instal PolicyCoreUtils -Python # semanage port -a -t mysqld_port_t -p tcp 20500 

Następnie uruchom ponownie usługę Mariadb.

Strojenie wydajności Mariadb

Aby pomóc nam w sprawdzeniu i dostrajaniu konfiguracji zgodnie z naszymi konkretnymi potrzebami, możemy zainstalować Mysqltuner (Skrypt, który dostarczy sugestie dotyczące poprawy wydajności naszego serwera bazy danych i zwiększenia jego stabilności):

# wget https: // github.com/major/mysqltuner-perl/tarball/master # TAR XZF Master 

Następnie zmień katalog na folder wyodrębniony z Tarball (dokładna wersja może się różnić w twoim przypadku):

# CD Major-Mysqltuner-Perl-7Dabf27 

i uruchom go (zostaniesz poproszony o wprowadzenie poświadczeń swojego konta administracyjnego MARIADB)

# ./Mysqltuner.pl 

Dane wyjściowe skryptu same w sobie jest bardzo interesujące, ale przejdźmy do dołu, gdzie zmienne do dostosowania są wymienione z zalecaną wartością:

MARIADB Performance Tunning

query_cache_type Ustawienie wskazuje, czy pamięć podręczna zapytania jest wyłączona (0) lub włączone (1). W tym przypadku, Mysqltuner doradza nam, abyśmy to wyłączyli.

Dlaczego więc zaleca się, abyśmy to teraz dezaktywowali? Powodem jest to, że pamięć podręczna zapytań jest przydatna głównie w scenariuszach o wysokim czytaniu / niskim zapisie (co nie jest naszym przypadkiem, ponieważ właśnie zainstalowaliśmy serwer bazy danych).

OSTRZEŻENIE: Przed wprowadzeniem zmian w konfiguracji serwera produkcyjnego jesteś bardzo zachęcany do konsultacji z ekspertem administratora bazy danych, aby upewnić się, że zalecenie wydane przez MySQLtuner nie wpłynie negatywnie na istniejące ustawienie.

Streszczenie

W tym artykule wyjaśniliśmy, jak skonfigurować serwer bazy danych MariaDB po zainstalowaniu i zabezpieczeniu. Zmienne konfiguracyjne wymienione w powyższej tabeli to tylko kilka ustawień, które możesz wziąć pod uwagę podczas przygotowywania serwera do użytku lub podczas strojenia go później. Zawsze odwołaj się do oficjalnej dokumentacji MariaDB przed wprowadzeniem zmian lub odnoszą się do naszych wskazówek związanych z dostrajaniem wydajności MariaDB:

Nie przegap: 15 Przydatne wskazówki dotyczące dostrajania i optymalizacji MariaDB

Jak zawsze, nie wahaj się daj nam znać, jeśli masz jakieś pytania lub komentarze na temat tego artykułu. Czy są jakieś inne ustawienia serwera, których lubisz używać? Podziel się z resztą społeczności, korzystając z poniższego formularza komentarza.

Zostań certyfikowanym administratorem systemu