MySQL :: MySQL 8.0 Reference Manual :: 4.2.4 łączenie się z serwerem MySQL za pomocą opcji poleceń
4.2.4 łączenie się z serwerem MySQL za pomocą opcji poleceń
Ta sekcja opisuje użycie opcji wiersza poleceń do określenia sposobu nawiązywania połączeń z serwerem MySQL dla klientów takich jak mysql lub mysqldump. Aby uzyskać informacje na temat nawiązywania połączeń przy użyciu łańcuchów połączeń podobnych do URI lub par klucz-wartość, dla klientów takich jak MySQL Shell, patrz sekcja 4.2.5, „łączenie się z serwerem przy użyciu łańcuchów podobnych do URI lub par klucz-wartość”. Aby uzyskać dodatkowe informacje, jeśli nie możesz się połączyć, zobacz punkt 6.2.21, „Rozwiązywanie problemów z połączeniem z MySQL”.
aby program kliencki mógł połączyć się z serwerem MySQL, musi użyć odpowiednich parametrów połączenia, takich jak nazwa hosta, na którym działa serwer oraz nazwa użytkownika i Hasło Twojego konta MySQL. Każdy parametr połączenia ma wartość domyślną, ale w razie potrzeby można nadpisać wartości domyślne za pomocą opcji programu określonych w wierszu poleceń lub w pliku opcji.
przykłady tutaj używają programu klienta mysql, ale zasady dotyczą innych klientów, takich jak mysqldump, mysqladmin lub mysqlshow.
To polecenie wywołuje mysql bez podania jawnych parametrów połączenia:
mysql
ponieważ nie ma opcji parametrów, stosuje się wartości domyślne:
-
domyślna nazwa hosta to
localhost
. W Uniksie ma to szczególne znaczenie, jak opisano później. -
domyślna nazwa użytkownika to
ODBC
w systemie Windows lub Twoja nazwa użytkownika w systemie Unix. -
nie jest wysyłane żadne Hasło, ponieważ nie podano ani
--password
, ani-p
. -
dla mysql pierwszy argument nonoption jest brany jako nazwa domyślnej bazy danych. Ponieważ nie ma takiego argumentu, mysql nie wybiera domyślnej bazy danych.
aby jawnie określić nazwę hosta i nazwę Użytkownika, a także hasło, podaj odpowiednie opcje w wierszu poleceń. Aby wybrać domyślną bazę danych, Dodaj argument nazwa bazy danych. Przykłady:
mysql --host=localhost --user=myname --password=password mydbmysql -h localhost -u myname -ppassword mydb
dla opcji hasła wartość hasła jest opcjonalna:
-
Jeśli używasz
--password
lub-p
opcja i podaj wartość hasła, nie może być spacji między--password=
lub-p
a następującym po niej hasłem. -
Jeśli używasz
--password
lub-p
, ale nie podajesz wartości hasła, program klienta wyświetla monit o wprowadzenie hasła. Hasło nie jest wyświetlane podczas wprowadzania go. Jest to bezpieczniejsze niż podanie hasła w wierszu poleceń, co może umożliwić innym użytkownikom w systemie zobaczenie wiersza hasła poprzez wykonanie polecenia takiego jak ps. Patrz punkt 6.1.2.1 „wytyczne dla użytkowników końcowych dotyczące bezpieczeństwa haseł”. -
aby wyraźnie określić, że nie ma hasła i że program kliencki nie powinien o nie pytać, użyj opcji
--skip-password
.
jak już wspomniano, włączenie wartości hasła w wierszu poleceń stanowi zagrożenie bezpieczeństwa. Aby uniknąć tego ryzyka, określ opcję--password
lub-p
bez następującej wartości hasła:
mysql --host=localhost --user=myname --password mydbmysql -h localhost -u myname -p mydb
gdy opcja--password
lub-p
jest podana bez wartości hasła, program klienta wyświetla monit i czeka na wprowadzenie hasła. (W tych przykładach mydb
nie jest interpretowane jako hasło, ponieważ jest oddzielone od poprzedniej opcji hasła spacją.)
w niektórych systemach procedura biblioteczna, której używa MySQL do zapytania o hasło, automatycznie ogranicza hasło do ośmiu znaków. Ograniczenie to jest właściwością biblioteki systemowej, a nie MySQL. Wewnętrznie, MySQL nie ma żadnych ograniczeń co do długości hasła. Aby obejść ograniczenia dotyczące systemów, których to dotyczy, podaj hasło w pliku opcji (patrz sekcja 4.2.2.2, „Korzystanie z plików opcji”). Innym obejściem jest zmiana hasła MySQL na wartość, która ma osiem lub mniej znaków, ale ma to tę wadę, że krótsze hasła są zwykle mniej bezpieczne.
programy klienckie określają, jaki rodzaj połączenia należy wykonać w następujący sposób:
-
Jeśli host nie jest określony lub jest to
localhost
, następuje połączenie z lokalnym hostem:-
w systemie Windows klient łączy się za pomocą pamięci współdzielonej, jeśli serwer został zaczęło się od zmiennej systemowej
shared_memory
umożliwiającej obsługę połączeń z pamięcią współdzieloną. -
w systemie Unix programy MySQL traktują nazwę hosta
localhost
w sposób, który prawdopodobnie różni się od tego, czego oczekujesz w porównaniu z innymi programami sieciowymi: klient łączy się za pomocą pliku gniazda Unix. Opcja--socket
lub zmienna środowiskowaMYSQL_UNIX_PORT
może być użyta do określenia nazwy gniazda.
-
-
w systemie Windows, jeśli
host
jest.
(period), lub TCP/IP nie jest włączony i--socket
nie jest określony lub host jest pusty, klient łączy się za pomocą nazwa potoku, jeśli serwer został uruchomiony ze zmienną systemowąnamed_pipe
umożliwiającą obsługę połączeń o nazwie-pipe. Jeśli połączenia nazwane-pipe nie są obsługiwane lub jeśli użytkownik wykonujący połączenie nie jest członkiem Grupy Windows określonej w zmiennej systemowejnamed_pipe_full_access_group
, wystąpi błąd. -
w przeciwnym razie połączenie wykorzystuje protokół TCP / IP.
opcja --protocol
umożliwia użycie określonego protokołu transportowego, nawet jeśli inne opcje zwykle powodują użycie innego protokołu. Oznacza to, że --protocol
jawnie określa protokół transportowy i zastępuje poprzednie reguły, nawet dla localhost
.
są używane lub sprawdzane tylko Opcje połączenia, które są istotne dla wybranego protokołu transportowego. Inne opcje połączenia są ignorowane. Na przykład, z --host=localhost
w systemie Unix, klient próbuje połączyć się z lokalnym serwerem za pomocą pliku gniazda Unix, nawet jeśli podano opcję --port
lub -P
, aby określić numer portu TCP/IP.
aby upewnić się, że klient nawiązuje połączenie TCP/IP z lokalnym serwerem, użyj --host
lub -h
, aby określić wartość nazwy hosta o wartości 127.0.0.1
(zamiast localhost
div>), lub adres IP lub nazwę lokalnego serwera. Można również jawnie określić protokół transportowy, nawet dla localhost
, używając opcji --protocol=TCP
. Przykłady:
mysql --host=127.0.0.1mysql --protocol=TCP
Jeśli serwer jest skonfigurowany do przyjmowania połączeń IPv6, klienci mogą łączyć się z lokalnym serwerem przez IPv6 za pomocą--host=::1
. Patrz Sekcja 5.1.13, „Obsługa IPv6”.
w systemie Windows, aby wymusić na kliencie MySQL użycie połączenia o nazwie-pipe, określ--pipe
lub--protocol=PIPE
opcja, lub określ.
(kropka) jako nazwę hosta. Jeśli serwer nie został uruchomiony ze zmienną systemowąnamed_pipe
umożliwiającą obsługę połączeń nazwanych lub jeśli użytkownik wykonujący połączenie nie jest członkiem Grupy Windows określonej przez zmienną systemową named_pipe_full_access_group
, wystąpi błąd. Użyj opcji--socket
, aby określić nazwę potoku, jeśli nie chcesz używać domyślnej nazwy potoku.
połączenia ze zdalnymi serwerami wykorzystują protokół TCP/IP. Polecenie to łączy się z serwerem działającym na remote.example.com
używając domyślnego numeru portu (3306):
mysql --host=remote.example.com
aby jawnie określić numer portu, użyj opcji --port
lub -P
:
mysql --host=remote.example.com --port=13306
Możesz określić numer portu dla połączeń lokalnych serwer też. Jednak, jak wspomniano wcześniej, połączenia z localhost
w systemie Unix domyślnie używają pliku gniazda, więc o ile nie wymusisz połączenia TCP/IP, jak opisano wcześniej, każda opcja określająca numer portu jest ignorowana.
dla tego polecenia program używa pliku gniazda w systemie Unix i opcja--port
jest ignorowana:
mysql --port=13306 --host=localhost
aby użyć numeru portu, Wymuś połączenie TCP / IP. Na przykład, wywołaj program w jeden z następujących sposobów:
mysql --port=13306 --host=127.0.0.1mysql --port=13306 --protocol=TCP
aby uzyskać dodatkowe informacje o opcjach, które kontrolują sposób, w jaki programy klienckie nawiązują połączenia z serwerem, zobacz Rozdział 4.2.3, „opcje poleceń do łączenia się z serwerem”.
można określić parametry połączenia bez wprowadzania ich w linii poleceń przy każdym wywołaniu programu klienckiego:
-
określ parametry połączenia w sekcji
w pliku opcji. Odpowiednia sekcja pliku może wyglądać tak:
host=host_nameuser=user_namepassword=password
aby uzyskać więcej informacji, zobacz sekcję 4.2.2.2, „używanie Plików opcji”.
-
niektóre parametry połączenia można określić za pomocą zmiennych środowiskowych. Przykłady:
-
aby określić host dla mysql, użyj
MYSQL_HOST
. -
w systemie Windows, aby określić nazwę użytkownika MySQL, użyj
USER
.
lista obsługiwanych zmiennych środowiskowych znajduje się w sekcji 4.9, „zmienne środowiskowe”.
-