MySQL :: MySQL 8.0 Reference Manual :: 4.2.4 Připojení k MySQL Serveru Pomocí Příkazu Možnosti

4.2.4 Připojení k MySQL Serveru Pomocí Příkazu Možnosti

Tento oddíl popisuje použití možnosti příkazového řádku k určení, jak vytvořit připojení k serveru MySQL, pro klienty, jako je mysql nebo mysqldump. Pro informace o vytvoření připojení pomocí URI-jako řetězce připojení, nebo páry klíč-hodnota, pro klienty, jako jsou MySQL Shell, viz Bod 4.2.5, „Připojení k Serveru Pomocí URI-Jako Struny nebo Páry Klíč-Hodnota“. Další informace, pokud se nemůžete připojit, naleznete v části 6.2.21 – „řešení problémů s připojením k MySQL“.

Pro klienta, program se připojit k MySQL serveru, je nutné použít správné parametry připojení, jako je jméno počítače, kde server běží a uživatelské jméno a heslo z MySQL účtu. Každý parametr připojení má výchozí hodnotu, ale výchozí hodnoty můžete podle potřeby přepsat pomocí možností programu zadaných buď na příkazovém řádku, nebo v souboru voleb.

příklady zde používají klientský program mysql, ale zásady platí pro jiné klienty, jako jsou mysqldump, mysqladmin nebo mysqlshow.

Tento příkaz vyvolá mysql bez určení explicitní parametry připojení:

mysql

Protože tam jsou žádný parametr, možnosti, výchozí hodnoty platí:

  • výchozí název hostitele je localhost. V Unixu to má zvláštní význam, jak je popsáno později.

  • výchozí uživatelské jméno je ODBC v systému Windows nebo v systému Unix přihlašovací jméno.

  • není odesláno žádné heslo, protože není zadáno ani --password ani -p.

  • pro mysql je první argument bez možnosti považován za název výchozí databáze. Protože takový argument neexistuje, mysql nevybere žádnou výchozí databázi.

Chcete-li explicitně zadat název hostitele a uživatelské jméno a heslo, zadejte na příkazovém řádku příslušné možnosti. Chcete-li vybrat výchozí databázi, přidejte argument název databáze. Příklady:

mysql --host=localhost --user=myname --password=password mydbmysql -h localhost -u myname -ppassword mydb

Pro password, heslo, hodnota je volitelná:

  • Pokud použijete --password nebo -p možnost a zadejte hodnotu hesla, tam musí být mezera mezi --password= nebo -p a heslo následující.

  • Pokud použijete --password nebo -p, ale nezadávejte heslo hodnotu, klient program vás vyzve k zadání hesla. Heslo se při jeho zadávání nezobrazí. To je bezpečnější než zadání hesla na příkazovém řádku, což může ostatním uživatelům ve vašem systému umožnit zobrazit řádek hesla provedením příkazu, jako je ps. Viz bod 6.1.2.1 – „pokyny pro koncové uživatele pro zabezpečení heslem“.

  • Chcete-li explicitně určit, že neexistuje žádné heslo, a to, že klient by měl program nevyzve pro jednoho, použijte --skip-password možnost.

jak již bylo zmíněno, včetně hodnoty hesla na příkazovém řádku představuje bezpečnostní riziko. Chcete-li se tomuto riziku vyhnout, zadejte volbu --password nebo -p bez následující hodnoty hesla:

mysql --host=localhost --user=myname --password mydbmysql -h localhost -u myname -p mydb

Když --password nebo -p možnost je uvedena bez hodnoty heslo, klientský program vypíše prompt a čeká na zadání hesla. (V těchto příkladech není mydb interpretováno jako heslo, protože je odděleno od předchozí volby hesla mezerou.)

v některých systémech rutina knihovny, kterou MySQL používá k zadání hesla, automaticky omezuje heslo na osm znaků. Toto omezení je vlastností systémové knihovny, nikoli MySQL. Interně MySQL nemá žádný limit pro délku hesla. Obejít omezení na systémy ovlivněny, zadejte své heslo na možnost file (viz kapitola 4.2.2.2, „Pomocí Volby Soubory“). Dalším řešením je změnit heslo MySQL na hodnotu, která má osm nebo méně znaků, ale to má tu nevýhodu, že kratší hesla bývají méně bezpečná.

klientské programy určují, jaký typ připojení se má provést následujícím způsobem:

  • Pokud hostitel není uvedeno nebo je localhost připojení k místní hostitele dochází:

    • V systému Windows, klient se připojí pomocí sdílené paměti, pokud server byl spuštěn s shared_memory systémové proměnné povoleno na podporu sdílené paměti připojení.

    • V Unixu, MySQL programy léčbě názvu hostitele localhost speciálně, tak, že je pravděpodobně odlišné od toho, co můžete očekávat, že ve srovnání s jinými síť-založené programy: klient se připojuje pomocí souboru Unix socket. K zadání názvu soketu lze použít volbu --socket nebo proměnnou prostředí MYSQL_UNIX_PORT.

  • V systému Windows, pokud host. (období), nebo TCP/IP není povolen a --socket není určen nebo hostitele je prázdné, klient se připojí pomocí pojmenovaného kanálu, pokud server byl spuštěn s named_pipe systémové proměnné umožnila, aby podpořila jménem-připojení trubek. Pokud jménem-potrubí připojení není podporován, nebo pokud uživatel provedením připojení není členem skupiny systému Windows určený pomocí named_pipe_full_access_group systémové proměnné, dojde k chybě.

  • V opačném případě připojení používá TCP / IP.

--protocol možnost umožňuje použít konkrétní transportní protokol, i když ostatní možnosti obvykle v důsledku použití jiného protokolu. To je, --protocol určuje transportní protokol výslovně a přepíše předchozí pravidla, a to i pro localhost.

používají se nebo kontrolují pouze možnosti připojení, které jsou relevantní pro vybraný transportní protokol. Ostatní možnosti připojení jsou ignorovány. Například --host=localhost na Unix, klient se pokusí připojit k místní server pomocí Unix socketu, i když --port nebo -P možnost zadat číslo portu TCP/IP.

Aby bylo zajištěno, že klient vytvoří připojení TCP/IP na místním serveru, použijte --host nebo -h zadat název hostitele hodnota 127.0.0.1 (místo localhost), nebo IP adresu nebo název místního serveru. Transportní protokol můžete také explicitně zadat i pro localhost pomocí volby --protocol=TCP. Příklad:

mysql --host=127.0.0.1mysql --protocol=TCP

Pokud je server nakonfigurován tak, aby přijmout IPv6 připojení, klienti mohou připojit k místní server přes IPv6 pomocí --host=::1. Viz Bod 5.1.13 – „Podpora IPv6“.

V systému Windows, přinutit MySQL klienta pomocí pojmenované-potrubí připojení, určete v --pipe nebo --protocol=PIPE možnost, nebo zadat . (období) jako název hostitele. Pokud nebyl server začal s named_pipe systémové proměnné umožnila, aby podpořila jménem-připojení trubek nebo pokud uživatel provedením připojení není členem skupiny systému Windows určený pomocí named_pipe_full_access_group systémové proměnné, dojde k chybě. Pokud nechcete použít výchozí název potrubí, použijte volbu --socket.

připojení ke vzdáleným serverům používají TCP / IP. Tento příkaz se připojí k serveru běžícímu na remote.example.com pomocí výchozího čísla portu (3306):

mysql --host=remote.example.com

určete číslo portu explicitně, pomocí --port nebo -P možnosti:

mysql --host=remote.example.com --port=13306

můžete zadat číslo portu pro připojení k místní server. Nicméně, jak je uvedeno výše, spojení do localhost v Unixu pomocí socket souboru ve výchozím nastavení, takže pokud jste síla TCP/IP spojení, jak bylo popsáno výše, jakoukoli možnost, která určuje číslo portu je ignorována.

Pro tento příkaz, program používá socket soubor na Unix a --port možnost je ignorována:

mysql --port=13306 --host=localhost

příčinou číslo portu, který má být použit, vynucení protokolu TCP/IP připojení. Například, spustit program v obou těchto způsobů:

mysql --port=13306 --host=127.0.0.1mysql --port=13306 --protocol=TCP

další informace o možnosti, že řízení jak klientských programů navázat připojení k serveru, viz Oddíl 4.2.3, „Příkaz Možnosti pro Připojení k Serveru“.

je možné zadat parametry připojení bez zadání z příkazového řádku pokaždé, když jste spustit program klienta:

  • Zadejte parametry připojení v oddíl možnost soubor. Příslušná část souboru může vypadat takto:

    host=host_nameuser=user_namepassword=password

    Další informace naleznete v části 4.2.2.2 – „použití volitelných souborů“.

  • některé parametry připojení lze zadat pomocí proměnných prostředí. Příklad:

    • určit hostitele pro mysql, použijte MYSQL_HOST.

    • v systému Windows zadejte uživatelské jméno MySQL pomocí USER.

    seznam podporovaných proměnných prostředí viz 4.9 – „proměnné prostředí“.



Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.