Sieć Wsparcia
Zainstaluj serwer MySQL na systemie operacyjnym Ubuntu
Ostatnia aktualizacja: 2019-12-20
Autor: Jered Heeschen
MySQL to relacyjna baza danych open-source, która jest darmowa i szeroko stosowana. Jest to dobry wybór, jeśli wiesz, że potrzebujesz bazy danych, ale nie wiesz zbyt wiele o wszystkich dostępnych opcjach.
Ten artykuł opisuje podstawową instalację serwera bazy danych MySQL na systemie operacyjnym Ubuntu. Może być konieczne zainstalowanie innych pakietów, aby aplikacje używały MySQL, takich jak rozszerzenia dla PHP. Sprawdź swoją aplikację, aby uzyskać szczegółowe informacje.
zainstaluj MySQL
Zainstaluj serwer MySQL za pomocą menedżera pakietów systemu operacyjnego Ubuntu:
sudo apt-get updatesudo apt-get install mysql-server
Instalator instaluje MySQL i wszystkie zależności.
jeśli bezpieczne narzędzie instalacyjne nie uruchomi się automatycznie po zakończeniu instalacji, wprowadź następujące polecenie:
sudo mysql_secure_installation utility
to narzędzie monituje o zdefiniowanie hasła głównego mysql i innych opcji związanych z bezpieczeństwem, w tym usunięcie zdalnego dostępu do użytkownika głównego i ustawienie hasła głównego.
Zezwalaj na zdalny dostęp
jeśli masz włączone iptables i chcesz połączyć się z bazą danych MySQL z innego komputera, musisz otworzyć port w zaporze serwera (domyślnym portem jest 3306). Nie musisz tego robić, jeśli aplikacja korzystająca z MySQLis działa na tym samym serwerze.
uruchom następujące polecenie, aby umożliwić zdalny dostęp do serwera mysql:
sudo ufw enablesudo ufw allow mysql
Uruchom usługę MySQL
po zakończeniu instalacji możesz uruchomić usługę bazy danych wykonując następujące polecenie. Jeśli usługa jest już uruchomiona, komunikat informuje, że usługa jest już uruchomiona:
sudo systemctl start mysql
Uruchom przy ponownym uruchomieniu
aby upewnić się, że serwer bazy danych uruchomi się po ponownym uruchomieniu, uruchom następujące polecenie:
sudo systemctl enable mysql
Konfigurowanie interfejsów
MySQL, domyślnie nie jest już związany z żadnym zdalnie dostępnym interfejsem.Edytuj dyrektywę „bind-address” w /etc/mysql/mysql.conf.d / mysqld.cnf:
bind-address= 127.0.0.1 ( The default. )bind-address= XXX.XXX.XXX.XXX ( The ip address of your Public Net interface. )bind-address= ZZZ.ZZZ.ZZZ.ZZZ ( The ip address of your Service Net interface. )bind-address= 0.0.0.0 ( All ip addresses. )
Uruchom ponownie usługę mysql.
sudo systemctl restart mysql
Uruchom powłokę mysql
istnieje więcej niż jeden sposób pracy z serwerem MySQL, ale ten artykuł skupia się na najbardziej podstawowym i zgodnym podejściu, powłoce mysql
.
-
w wierszu polecenia uruchom następujące polecenie, aby uruchomić powłokę
mysql
i wprowadź ją jako użytkownika głównego:/usr/bin/mysql -u root -p
-
gdy pojawi się monit o podanie hasła, wprowadź hasło, które ustawiłeś podczas instalacji, lub jeśli nie ustawiłeś hasła, naciśnij klawisz Enter, aby przesłać nopassword.
powinien pojawić się następujący znak zachęty powłoki
mysql
:mysql>
Ustaw hasło root
jeśli zalogowałeś się, wprowadzając puste hasło lub jeśli chcesz zmienić ustawione hasło rootpassword, możesz utworzyć lub zmienić hasło.
-
w przypadku wersji wcześniejszych niż MySQL 5.7 wprowadź następujące polecenie w powłoce
mysql
, zastąppassword
nowym hasłem:UPDATE mysql.user SET Password = PASSWORD('password') WHERE User = 'root';
w przypadku wersji MySQL 5.7 i nowszych wprowadź następujące polecenie w powłoce
mysql
, zastępującpassword
nowym hasłem:UPDATE mysql.user SET authentication_string = PASSWORD('password') WHERE User = 'root';
-
aby zmiana weszła w życie, przeładuj zapisane informacje o użytkowniku za pomocą następującego polecenia:
FLUSH PRIVILEGES;
Uwaga: używamy All-caps dla poleceń SQL. Jeśli napiszesz te polecenia małymi literami, będą działać. Zgodnie z konwencją, komendy są pisane wielkimi literami, aby wyróżniały się na tle nazw pól i innych danych, które są manipulowane.
jeśli chcesz później zresetować hasło roota, zobacz Resetowanie hasła roota MySQL.
wyświetl użytkowników
MySQL przechowuje informacje o użytkownikach we własnej bazie danych. Nazwa bazy danych to mysql. Wewnątrz tej bazy danych informacje o użytkowniku znajdują się w tabeli adataset o nazwie user. Jeśli chcesz zobaczyć, co użytkownicy są skonfigurowani w tabeli MySQLuser, uruchom następujące polecenie:
SELECT User, Host, authentication_string FROM mysql.user;
poniższa lista opisuje części tego polecenia:
- SELECT informuje MySQL, że prosisz o dane.
- User, Host, authentication_string mówi MySQL, w jakich polach chcesz go znaleźć. Pola są kategoriami danych w tabeli. W takim przypadku szukasz nazwy użytkownika, hosta powiązanego z nazwą użytkownika i zaszyfrowanego hasła.
- z mysql.user ” mówi MySQL, aby uzyskać dane z bazy mysqldatabase i tabeli użytkowników.
- średnik (;) kończy polecenie.
Uwaga: wszystkie zapytania SQL kończą się średnikiem. MySQL nie przetwarza zapytania dopóki nie wpiszesz średnika.
hosty użytkownika
poniższy przykład jest wynikiem poprzedzającego zapytania:
SELECT User, Host, authentication_string FROM mysql.user;+------------------+-----------+-------------------------------------------+| User | Host | authentication_string |+------------------+-----------+-------------------------------------------+| root | localhost | *756FEC25AC0E1823C9838EE1A9A6730A20ACDA21 || mysql.session | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE || mysql.sys | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE || debian-sys-maint | localhost | *27E7CA2445405AB10C656AFD0F86AF76CCC57692 |+------------------+-----------+-------------------------------------------+
użytkownicy są powiązani z hostem, a konkretnie z hostem, z którego się łączą.Użytkownik root w tym przykładzie jest zdefiniowany dla localhost, dla adresu IP localhost i nazwy hosta serwera.Zwykle musisz ustawić użytkownika tylko dla jednego hosta, tego, z którego się łączysz.
jeśli używasz aplikacji na tym samym komputerze co serwer MySQLserver, hostem, z którym łączy się domyślnie, jest localhost. Każdy nowy użytkownik, który utworzysz, musi mieć localhost w polu host.
Jeśli aplikacja łączy się zdalnie, wpis hosta, którego szuka MySQL, to adres IP lub nazwa hosta DNS zdalnego komputera (tego, z którego pochodzi klient).
anonimowi użytkownicy
w przykładowym wyjściu jeden wpis ma wartość hosta, ale nie ma nazwy użytkownika ani hasła.To Anonimowy użytkownik. Gdy klient łączy się bez podanej nazwy użytkownika,próbuje połączyć się jako anonimowy użytkownik.
zwykle nie chcesz żadnych anonimowych użytkowników, ale niektóre instalacje MySQL domyślnie zawierają jeden. Jeśli go widzisz, powinieneś usunąć użytkownika (odwołaj się do nazwy użytkownika z pustymi cudzysłowami, takimi jak””) lub ustawić dla niego hasło.
Utwórz bazę danych
Istnieje różnica między serwerem bazy danych a bazą danych, chociaż te terminy są często używane zamiennie. MySQL jest serwerem baz danych, co oznacza, że śledzi bazy danych i kontroluje dostęp do nich. Baza danych przechowuje dane ijest to baza danych, do której aplikacje próbują uzyskać dostęp podczas interakcji z MySQL.
niektóre aplikacje tworzą bazę danych w ramach procesu konfiguracji, ale inne wymagają utworzenia bazy danych samodzielnie i poinformowania o tym aplikacji.
aby utworzyć bazę danych, Zaloguj się do powłoki mysql
i uruchom następujące polecenie, zastępując demodb
nazwą bazy danych, którą chcesz utworzyć:
CREATE DATABASE demodb;
po utworzeniu bazy danych możesz zweryfikować jej utworzenie, uruchamiając zapytanie do listy wszystkich baz danych. Poniższy przykład pokazuje wynik zapytania i przykładu:
SHOW DATABASES;+--------------------+| Database |+--------------------+| information_schema || demodb || mysql |+--------------------+3 rows in set (0.00 sec)
Dodaj użytkownika bazy danych
gdy aplikacje łączą się z bazą danych za pomocą użytkownika root, zwykle mają więcej uprawnień niż potrzebują. Możesz dodać użytkowników, których aplikacje mogą używać do łączenia się z nową bazą danych. W poniższym przykładzie tworzony jest użytkownik o nazwie demouser.
-
aby utworzyć nowego użytkownika, uruchom następujące polecenie w powłoce
mysql
:INSERT INTO mysql.user (User,Host,authentication_string,ssl_cipher,x509_issuer,x509_subject)VALUES('demouser','localhost',PASSWORD('demopassword'),'','','');
-
podczas wprowadzania zmian w tabeli użytkowników w bazie danych mysql, powiedz MySQL, aby odczytał zmiany, wypłukując uprawnienia, w następujący sposób:
FLUSH PRIVILEGES;
-
sprawdź, czy użytkownik został utworzony, ponownie uruchamiając zapytanie SELECT:
SELECT User, Host, authentication_string FROM mysql.user;+------------------+-----------+-------------------------------------------+| User | Host | Password |+------------------+-----------+-------------------------------------------+| root | localhost | *756FEC25AC0E1823C9838EE1A9A6730A20ACDA21 || mysql.session | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE || mysql.sys | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE || debian-sys-maint | localhost | *27E7CA2445405AB10C656AFD0F86AF76CCC57692 || demouser | localhost | *0756A562377EDF6ED3AC45A00B356AAE6D3C6BB6 |+------------------+-----------+-------------------------------------------+
przyznaj uprawnienia użytkownika bazy danych
zaraz po utworzeniu nowego użytkownika nie ma on uprawnień. Użytkownik może się zalogować, ale nie może być używany do wprowadzania zmian w bazie danych.
podsumowanie
jeśli tylko tworzysz bazę danych i Użytkownika, jesteś skończony. Opisane tu koncepcje powinny dać solidny początek, od którego można dowiedzieć się więcej.
- Skonfiguruj serwer MySQL w systemie operacyjnym Ubuntu
- Zresetuj hasło administratora MySQL