MySQL to jeden z najpopularniejszych systemów zarządzania relacyjnymi bazami danych typu open source (RDBMS), oparty na języku SQL (Structured Query Language), który jest językiem programowania używanym do zarządzania danymi przechowywanymi w bazie danych.
Jest szybki, prosty w użyciu nawet dla początkujących, którzy zaczynają rozwijać backend i jest zintegrowany z różnymi pakietami stosu, takimi jak Xampp, Lampp i Wamp.
W tym konkretnym poście pokażemy, jak zainstalować serwer MySQL w systemie Ubuntu. Dodatkowe informacje obejmują konfigurowanie opcji zabezpieczeń, dostosowywanie metod uwierzytelniania i tworzenie nowego użytkownika. Nasze wydanie Ubuntu wybrane w tym samouczku to Ubuntu 20.04 LTS, które jest najnowszą wersją w momencie pisania tego artykułu.
Instalacja MySQL na Ubuntu
Wymagania
Będziesz potrzebować podwyższonych uprawnień (root) w swoim systemie. Możesz to zrobić, wykonując poniższe polecenie.
sudo su
Procedura
W chwili pisania tego posta aktualna wersja MySQL Linux to wersja 5.7. Aby rozpocząć instalację, wykonaj następujące czynności:
Krok 1) Upewnij się, że wszystkie pakiety i repozytoria w Twoim systemie są aktualne. Możesz to zrobić, uruchamiając poniższe polecenie:
sudo apt update
Krok 2) Teraz zainstalujemy MySQL za pomocą menedżera pakietów apt. Wykonaj poniższe polecenie.
sudo apt install mysql-server
Krok 3) Po udanej instalacji usługa mysql powinna uruchomić się automatycznie. Możesz to potwierdzić, wykonując poniższe polecenie:
sudo systemctl status mysql
Powinieneś otrzymać wynik podobny do tego na obrazku poniżej.
W każdym przypadku, gdy usługa nie jest uruchomiona, wykonaj poniższe polecenie:
sudo /etc/init.d/mysql start
Zweryfikuj instalację MySQL (opcjonalnie)
Możesz zweryfikować swoją instalację, uruchamiając poniższe polecenie, które wyświetli wersję i dystrybucję MySQL zainstalowaną w twoim systemie.
mysql --version
Zabezpiecz swój serwer MySQL
Teraz, gdy serwer MySQL został pomyślnie zainstalowany, musisz ustawić kilka parametrów, aby zapewnić bezpieczeństwo serwera i baz danych, które konfigurujesz w przyszłości.
W innych przypadkach, po zakończeniu instalacji pakietu MySQL Server, narzędzie mysql-secure-installation uruchomi się automatycznie. Jeśli jednak tak nie jest w Twoim przypadku, wykonaj poniższe polecenie:
sudo mysql_secure_installation
Zobaczysz monit z pytaniem, czy WERYFIKOWAĆ WTYCZKĘ HASŁA. Zwiększa bezpieczeństwo serwera MySQL, sprawdzając siłę haseł użytkowników, umożliwiając użytkownikom ustawianie tylko silnych haseł. Naciśnij Y, aby zaakceptować WALIDACJĘ lub klawisz RETURN, aby pominąć.
Następnie powinieneś zobaczyć monit o ustawienie hasła roota. Wpisz swoje hasło i naciśnij enter. Uwaga, ze względów bezpieczeństwa wszystko, co wpisujesz w konsoli, nie jest wyświetlane.
Następnie powinieneś zobaczyć monit z pytaniem, czy usunąć wszystkich anonimowych użytkowników, wpisz Y dla TAK. W przypadku innych monitów z tego miejsca wpisz Y dla TAK.
Zaloguj się jako root i dostosuj uwierzytelnianie użytkownika
Serwer MySQL jest dostarczany z narzędziem po stronie klienta, które umożliwia dostęp do bazy danych i interakcję z nią z poziomu terminala Linux.
Zazwyczaj po nowej instalacji MySQL na Ubuntu bez wykonywania jakiejkolwiek konfiguracji, użytkownicy uzyskujący dostęp do serwera są uwierzytelniani za pomocą wtyczki gniazda uwierzytelniania (auth_socket).
Użycie auth_socket utrudnia serwerowi uwierzytelnienie użytkownika za pomocą hasła. Nie tylko budzi to obawy dotyczące bezpieczeństwa, ale także uniemożliwia użytkownikom dostęp do bazy danych za pomocą zewnętrznych programów, takich jak phpMyAdmin. Musimy zmienić metodę uwierzytelniania z auth_socket na użycie mysql_native_password.
Aby to zrobić, będziemy musieli otworzyć konsolę MySQL. Uruchom następujące polecenie w terminalu Linux.
sudo mysql
Teraz musimy sprawdzić metodę uwierzytelniania używaną przez bazę danych na różnych użytkownikach. Możesz to zrobić, uruchamiając poniższe polecenie.
SELECT user,authentication_string,plugin,host FROM mysql.user;
Na powyższym obrazku możemy potwierdzić, że użytkownik root rzeczywiście jest uwierzytelniony za pomocą wtyczki auth_socket. Musimy przełączyć się na użycie „uwierzytelniania hasłem” za pomocą polecenia „ZMIEŃ UŻYTKOWNIKA” poniżej. Upewnij się, że używasz bezpiecznego hasła (powinno mieć więcej niż osiem znaków składających się z cyfr, ciągów i symboli specjalnych), ponieważ zastąpi ono hasło ustawione podczas wykonywania polecenia „sudo mysql_secure_installation” powyżej. Uruchom poniższe polecenie.
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password';
Uwaga, zaznaczony tekst na powyższym obrazku to miejsce, w którym wprowadzisz swoje bezpieczne hasło. Umieść go pomiędzy pojedynczymi tagami. Teraz musimy ponownie załadować tabele grantów i zaktualizować zmiany na serwerze MySQL. Zrób to, wykonując poniższe polecenie.
FLUSH PRIVILEGES;
Po zakończeniu musimy potwierdzić, że użytkownik root nie używa już auth_socket do uwierzytelniania. Zrób to, ponownie uruchamiając poniższe polecenie.
SELECT user,authentication_string,plugin,host FROM mysql.user;
Na powyższym obrazku widzimy, że metoda uwierzytelniania root zmieniła się z „auth_socket” na „hasło”.
Ponieważ zmieniliśmy metodę uwierzytelniania dla roota, nie możemy użyć tego samego polecenia, którego używaliśmy wcześniej, aby otworzyć konsolę MySQL. To znaczy „sudo mysql”. Będziemy musieli uwzględnić parametry nazwy użytkownika i hasła, jak pokazano poniżej.
mysql -u root -p
„-u” wskazuje użytkownika, którym jest „root” w naszym przypadku, a „-p” oznacza „hasło”, które serwer poprosi o wprowadzenie po naciśnięciu klawisza Enter.
Tworzenie nowego użytkownika
Po skonfigurowaniu wszystkiego możesz utworzyć nowego użytkownika, któremu nadasz odpowiednie uprawnienia. W naszym przypadku tutaj utworzymy użytkownika „tuts_fosslinux” i przypiszemy prawa do wszystkich tabel bazy danych oraz uprawnienia do zmiany, usuwania i dodawania uprawnień użytkownika. Wykonaj polecenia poniżej linia po linii.
CREATE USER 'tuts_fosslinux'@'localhost' IDENTIFIED BY 'strong_password'; GRANT ALL PRIVILEGES ON *.* TO 'tuts_fosslinux'@'localhost' WITH GRANT OPTION;
Pierwsze polecenie utworzy nowego użytkownika, a drugie przypisze potrzebne uprawnienia.
Możemy teraz przetestować naszego nowego użytkownika, uruchamiając poniższe polecenie.
mysql -u tuts_fosslinux -p
Zainstaluj serwer MySQL na serwerze Ubuntu
Instalacja serwera MySQL na serwerze Ubuntu nie różni się zbytnio od kroków opisanych powyżej. Jednak ponieważ serwer jest dostępny zdalnie, musimy również włączyć zdalny dostęp dla naszego serwera.
Aby zainstalować bazę danych i skonfigurować opcje bezpieczeństwa, po prostu uruchom następujące polecenia wiersz po wierszu na terminalu.
sudo apt update sudo apt install mysql-server sudo mysql_secure_installation
Po udanej instalacji będziemy musieli włączyć zdalny dostęp. Logicznie rzecz biorąc, wszystko, co musimy zrobić, to otworzyć port na zaporze serwera Ubuntu, aby serwer MySQL mógł się komunikować. Domyślnie usługa MySQL działa na porcie 3306. Uruchom poniższe polecenia.
sudo ufw enable
sudo ufw allow mysql
Aby zwiększyć niezawodność i dostępność naszych baz danych MySQL, możemy skonfigurować usługę serwera MySQL tak, aby uruchamiała się przy starcie. Aby to zrobić, wykonaj poniższe polecenie.
sudo systemctl enable mysql
Teraz będziemy musieli skonfigurować interfejsy naszego serwera. Umożliwi to serwerowi nasłuchiwanie zdalnie dostępnych interfejsów. Będziemy musieli edytować plik „mysqld.cnf”. Uruchom poniższe polecenia.
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
Domyślnie adres powiązania to „127.0.0.1”. Dodaj adres powiązania dla publicznego interfejsu sieciowego, a drugi dla interfejsu sieci usługowej. Możesz skonfigurować swój adres powiązania jako „0.0.0.0” dla wszystkich adresów IP.
Wniosek
Mam nadzieję, że podobał Ci się ten samouczek dotyczący konfigurowania serwera MySQL w systemie Ubuntu. Jeśli dopiero zaczynasz pracę z MySQL i wszystko, czego potrzebujesz, to stworzyć prostą bazę danych i użytkownika, powyższe kroki powinny być bardzo pomocne. Jeśli uznasz ten artykuł za zaradny, udostępnij link znajomemu.