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 snamed_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í“.
-