Jak zainstalować, bezpieczne i dostrajanie wydajności serwera bazy danych Mariadb
- 3437
- 28
- Tomasz Szatkowski
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 MariadbPonadto 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:
- Ustaw / zresetuj hasło dla użytkownika root RDBMS
- Usuń anonimowe loginy (w ten sposób umożliwiając tylko użytkownikom z prawidłowym kontem do zalogowania się do RDBMS)
- Wyłącz dostęp do korzeni dla maszyn innych niż LocalHost
- Usuń testową bazę danych (do której każdy może uzyskać dostęp)
- 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): 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- « Konfigurowanie SquidGuard, włączanie reguł treści i analizowanie dzienników kalmarów - Część 6
- Jak konfigurować zaszyfrowane systemy plików i zamienić przestrzeń za pomocą narzędzia „CryptsetUp” w Linux - część 3 »