Wprowadzenie
Jedną z pierwszych rzeczy, o których musisz pomyśleć podczas pracy z bazą danych MySQL, jest sposób łączenia się i interakcji z instancją bazy danych. Wymaga to koordynacji między klientem bazy danych — komponentem używanym do interakcji z bazą danych, a serwerem bazy danych — rzeczywistą instancją MySQL, która przechowuje, organizuje i zapewnia dostęp do danych.
Z tego powodu musisz zrozumieć, jak połączyć się jako klient, dostarczając wymagane informacje do uwierzytelnienia. W tym przewodniku omówimy, jak połączyć się z bazą danych MySQL przy użyciu natywnego mysql
klient wiersza poleceń — jeden z najczęstszych i najbardziej użytecznych sposobów interakcji z instancją bazy danych.
W towarzyszącym przewodniku dowiesz się, jak skonfigurować uwierzytelnianie MySQL, aby spełnić potrzeby Twojego projektu. Rozważ przeczytanie obu przewodników, aby uzyskać pełniejszy obraz tego, jak działa uwierzytelnianie w MySQL.
Podstawowe informacje o mysql
klient
mysql
klient jest domyślnym klientem wiersza poleceń i powłoką SQL dla MySQL. Możesz użyć go interaktywnie, aby wywołać sesję powłoki z serwerem lub podać mu pliki SQL, aby działały bez interakcji użytkownika. Jest to szczególnie przydatne podczas wdrażania opcji konfiguracyjnych i konfigurowania środowiska. Interaktywna eksploracja i zapytania ad-hoc są również mocną stroną podczas opracowywania wzorców dostępu, których będą używać Twoje programy.
Sposób łączenia się i uwierzytelniania z serwerem MySQL zależy od konfiguracji serwera. W kolejnych sekcjach omówimy niektóre z podstawowych opcji połączenia. Dla jasności rozróżnimy połączenia lokalne i zdalne:
- połączenie lokalne :połączenie, w którym klient i instancja MySQL znajdują się na tym samym serwerze
- połączenie zdalne :gdzie klient łączy się z dostępną przez sieć instancją MySQL działającą na innym komputerze
Zacznijmy od połączenia z bazą danych z tego samego komputera.
Łączenie z lokalną bazą danych za pomocą mysql
Bez żadnych argumentów mysql
polecenie próbuje połączyć się z plikiem gniazda uniksowego, aby uzyskać dostęp do lokalnej bazy danych. Zwykle domyślna lokalizacja pliku gniazda jest określana przez plik konfiguracyjny lub przez skompilowaną wartość domyślną. Domyślnie do próby połączenia z bazą danych używana jest nazwa użytkownika systemu operacyjnego.
Jeśli więc Twój obecny użytkownik jest prawidłowym użytkownikiem MySQL w Twojej lokalnej bazie danych, możesz spróbować połączyć się, wpisując:
mysql
Jeśli konto istnieje i nie wymaga hasła lub jeśli dla konta skonfigurowano uwierzytelnianie przez gniazdo MySQL, zostaniesz automatycznie zalogowany. Jeśli nazwa użytkownika nie istnieje w MySQL lub jeśli wymagane jest hasło lub dodatkowe uwierzytelnienie, polecenie nie powiedzie się.
Aby kontrolować sposób, w jaki mysql
próbuje zalogować się do bazy danych, przekazuje dodatkowe informacje za pomocą polecenia, korzystając z opcji wiersza poleceń:
--user=<username>
lub-u <username>
:określa użytkownika MySQL do uwierzytelnienia.--password
lub-p
:mówi MySQL, aby poprosił o hasło dla użytkownika MySQL.--host=127.0.0.1
lub-h 127.0.0.1
:mówimysql
aby połączyć się z lokalną instancją MySQL przy użyciu lokalnego adresu pętli zwrotnej TCP zamiast gniazda uniksowego. Jest to ważne, jeśli twój serwer MySQL nie jest skonfigurowany do korzystania z gniazd uniksowych.
Uwaga: MySQL interpretuje 127.0.0.1
inaczej niż localhost
. Określanie 127.0.0.1
wskazuje, że chcesz użyć połączenia TCP, podczas gdy localhost
spowoduje, że MySQL spróbuje użyć gniazda Unix do połączenia z lokalną bazą danych.
Tak więc, jeśli musisz zalogować się jako użytkownik MySQL eva
z hasłem, ale nadal używając gniazda Unix do połączenia, możesz wpisać:
mysql --user=eva --password
mysql
klient poprosi Cię o hasło do konta.
Jeśli chcesz spróbować zalogować się przy użyciu tej samej nazwy użytkownika, ale przez połączenie TCP z lokalną bazą danych, wpisz:
mysql --user=eva --password --host=127.0.0.1
Domyślna konfiguracja uwierzytelniania, a także początkowa nazwa użytkownika i hasło administratora mogą się różnić w zależności od tego, jak zainstalowano MySQL. Jednak wiele metod konfiguruje MySQL tak, aby używał gniazda uniksowego i zawierał domyślny root
użytkownika jako konto administratora.
W takich przypadkach możesz zalogować się do bazy danych jako root
użytkownik wpisując:
mysql --user=root --password
Zostaniesz poproszony o podanie hasła administracyjnego, które zostało wybrane lub wygenerowane podczas instalacji, aby kontynuować.
Wszystkie te metody umożliwiają połączenie z lokalną bazą danych MySQL.
Łączenie ze zdalną bazą danych
Jeśli chcesz połączyć się ze zdalną bazą danych MySQL, musisz podać lokalizację sieciową zdalnego hosta i ewentualnie dodać dodatkowe informacje.
Dostępne metody uwierzytelniania różnią się w zależności od konfiguracji instancji MySQL. Najczęściej jednak do uwierzytelnienia należy podać następujące parametry:
Opcja | Opis |
---|---|
--host= lub -h | Nazwa hosta sieciowego lub adres IP serwera MySQL. |
--port= lub -P | Port sieciowy, na którym działa serwer MySQL. Jeśli serwer używa portu 3306, domyślnego portu MySQL, ten parametr można pominąć. |
--user= lub -u | Nazwa użytkownika bazy danych, z którą chcesz się połączyć. Jeśli nie zostanie określony, zostanie użyta nazwa użytkownika systemu operacyjnego. |
--password lub -p | Wskaż, że chcesz podać hasło dla określonego konta. mysql klient zapyta o hasło po naciśnięciu Enter . |
Baza danych MySQL | Nazwa bazy danych MySQL, do której chcesz uzyskać dostęp. Jeśli nie określono, mysql połączy się z serwerem bez łączenia się z określoną bazą danych. |
Podstawowy format połączenia ze zdalną bazą danych zazwyczaj wygląda mniej więcej tak:
mysql --host=<hostname> --port=<port> --user=<user> --password <database>
Po naciśnięciu Enter , mysql
klient poprosi o hasło. Po pomyślnym uwierzytelnieniu zostanie uruchomiona nowa interaktywna sesja MySQL.
Jako przykład możemy sobie wyobrazić, że chcemy połączyć się z bazą danych z następującymi wymaganiami:
- nazwa hosta:
myhost
- port:1234
- baza danych:
applicationdb
- nazwa użytkownika:
myapplicationuser
- hasło:
mypass
Wywołanie mysql
z następującymi opcjami pozwoli na uwierzytelnienie:
mysql --host=myhost --port=1234 --user=myapplicationuser --password applicationdb
Po naciśnięciu klawisza Enter zostaniesz poproszony o hasło, w którym możesz uwierzytelnić się za pomocą mypass
.
Dostosowywanie konfiguracji uwierzytelniania serwera MySQL
Jeśli chcesz zmodyfikować reguły określające sposób uwierzytelniania użytkowników w Twoich instancjach MySQL, możesz to zrobić, modyfikując konfigurację serwera. W tym artykule dowiesz się, jak zmodyfikować konfigurację uwierzytelniania MySQL.
Wniosek
W tym przewodniku omówiliśmy uwierzytelnianie MySQL od strony klienta. Pokazaliśmy, jak używać mysql
Klient wiersza poleceń do łączenia się zarówno z lokalnymi, jak i zdalnymi instancjami baz danych.
Umiejętność łączenia się z różnymi instancjami MySQL jest jednym z pierwszych kroków, które musisz zrozumieć, gdy zaczynasz pracę z systemem baz danych. Możesz uruchomić lokalną instancję MySQL na potrzeby programowania, która nie wymaga żadnego specjalnego uwierzytelniania, ale Twoje bazy danych w fazie tymczasowej i produkcyjnej prawie na pewno będą wymagały uwierzytelniania. Możliwość uwierzytelnienia w obu przypadkach pozwoli Ci dobrze pracować w różnych środowiskach.