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 --passwordlub -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ślihost 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 systemowej named_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żyjMYSQL_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”.



Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.