MySQL:: MySQL 8.0 Manual de referință:: 4.2.4 conectarea la serverul MySQL folosind opțiunile de comandă
4.2.4 conectarea la serverul MySQL folosind opțiunile de comandă
această secțiune descrie utilizarea opțiunilor din linia de comandă pentru a specifica modul de stabilire a conexiunilor la serverul MySQL, pentru clienți precum mysql sau mysqldump. Pentru informații despre stabilirea conexiunilor folosind șiruri de conexiune de tip URI sau perechi cheie-valoare, pentru clienți precum MySQL Shell, consultați secțiunea 4.2.5, „conectarea la Server folosind șiruri de tip URI sau perechi cheie-valoare”. Pentru informații suplimentare dacă nu vă puteți conecta, consultați secțiunea 6.2.21,”Depanarea problemelor de conectare la MySQL”.
pentru ca un program client să se conecteze la serverul MySQL, acesta trebuie să utilizeze parametrii de conectare corespunzători, cum ar fi numele gazdei pe care rulează serverul și numele de utilizator și parola contului MySQL. Fiecare parametru de conexiune are o valoare implicită, dar puteți suprascrie valorile implicite, după cum este necesar, utilizând opțiunile de program specificate fie pe linia de comandă, fie într-un fișier de opțiuni.
exemplele de aici folosesc programul client mysql, dar principiile se aplică altor clienți, cum ar fi mysqldump, mysqladmin sau mysqlshow.
această comandă invocă mysql fără a specifica parametri de conexiune expliciți:
mysql
deoarece nu există opțiuni de parametri, valorile implicite se aplică:
-
numele de gazdă implicit este
localhost
. Pe Unix, aceasta are o semnificație specială, așa cum este descris mai târziu. -
numele de utilizator implicit este
ODBC
pe Windows sau numele dvs. de conectare Unix pe Unix. -
nu este trimisă nicio parolă deoarece nu este dată nici
--password
nici-p
. -
pentru mysql, primul argument nonoption este luat ca numele bazei de date implicite. Deoarece nu există un astfel de argument, mysql nu selectează nicio bază de date implicită.
pentru a specifica în mod explicit numele gazdei și numele de utilizator, precum și o parolă, furnizați opțiunile corespunzătoare pe linia de comandă. Pentru a selecta o bază de date implicită, adăugați un argument Nume bază de date. Exemple:
mysql --host=localhost --user=myname --password=password mydbmysql -h localhost -u myname -ppassword mydb
pentru opțiunile de parolă, valoarea parolei este opțională:
-
dacă utilizați un
--password
sau-p
opțiune și specificați o valoare a parolei, nu trebuie să existe spațiu între--password=
sau-p
și parola care o urmează. -
dacă utilizați
--password
sau-p
dar nu specificați o valoare a parolei, programul client vă solicită să introduceți parola. Parola nu este afișată pe măsură ce o introduceți. Acest lucru este mai sigur decât oferirea parolei pe linia de comandă, ceea ce ar putea permite altor utilizatori din sistemul dvs. să vadă linia de parolă executând o comandă precum ps. A se vedea secțiunea 6.1.2.1, „Ghidul utilizatorului final pentru securitatea parolelor”. -
pentru a specifica în mod explicit că nu există nicio parolă și că programul client nu ar trebui să solicite una, utilizați opțiunea
--skip-password
.
după cum am menționat, includerea valorii parolei pe linia de comandă reprezintă un risc de securitate. Pentru a evita acest risc, specificați opțiunea--password
sau-p
fără nicio valoare a parolei următoare:
mysql --host=localhost --user=myname --password mydbmysql -h localhost -u myname -p mydb
când opțiunea--password
sau-p
este dată fără valoare de parolă, programul client imprimă un prompt și așteaptă să introduceți parola. (În aceste exemple,mydb
nu este interpretat ca o parolă, deoarece este separat de opțiunea de parolă precedentă printr-un spațiu.)
pe unele sisteme, rutina de bibliotecă pe care MySQL o folosește pentru a solicita o parolă limitează automat parola la opt caractere. Această limitare este o proprietate a bibliotecii de sistem, nu MySQL. Pe plan intern, MySQL nu are nicio limită pentru lungimea parolei. Pentru a rezolva limitarea sistemelor afectate de aceasta, specificați parola într-un fișier de opțiuni (consultați secțiunea 4.2.2.2, „utilizarea fișierelor de opțiuni”). O altă soluție este să vă schimbați parola MySQL la o valoare care are opt sau mai puține caractere, dar care are dezavantajul că parolele mai scurte tind să fie mai puțin sigure.
programele Client determină ce tip de conexiune să facă după cum urmează:
-
dacă gazda nu este specificată sau este
localhost
, are loc o conexiune la gazda locală:-
pe Windows, clientul se conectează utilizând memoria partajată, dacă serverul a fost conectat la a început cu
shared_memory
variabila de sistem activat pentru a sprijini conexiuni de memorie partajată. -
pe Unix, programele MySQL tratează numele gazdei
localhost
în mod special, într-un mod care este probabil diferit de ceea ce vă așteptați în comparație cu alte programe bazate pe rețea: clientul se conectează utilizând un fișier socket Unix. Opțiunea--socket
sau variabila de mediuMYSQL_UNIX_PORT
poate fi utilizată pentru a specifica numele soclului.
-
-
pe Windows, dacă
host
este.
(perioadă), sau TCP/IP nu este activat și--socket
nu este specificat sau gazda este goală, clientul se conectează folosind un numit pipe, în cazul în care serverul a fost pornit cunamed_pipe
variabila de sistem activat pentru a sprijini conexiuni numite-pipe. Dacă conexiunile numite-pipe nu sunt acceptate sau dacă utilizatorul care face conexiunea nu este membru al grupului Windows specificat denamed_pipe_full_access_group
variabila de sistem, apare o eroare. -
în caz contrar, conexiunea utilizează TCP / IP.
opțiunea --protocol
vă permite să utilizați un anumit protocol de transport chiar și atunci când alte opțiuni duc în mod normal la utilizarea unui protocol diferit. Adică --protocol
specifică Explicit protocolul de transport și înlocuiește Regulile precedente, chiar și pentru localhost
.
sunt utilizate sau verificate numai opțiunile de conectare relevante pentru protocolul de transport selectat. Alte opțiuni de conectare sunt ignorate. De exemplu, cu --host=localhost
pe Unix, clientul încearcă să se conecteze la serverul local folosind un fișier socket Unix, chiar dacă o opțiune --port
sau -P
este dată pentru a specifica un număr de port TCP/IP.
pentru a vă asigura că clientul face o conexiune TCP/IP la serverul local, utilizați --host
sau -h
pentru a specifica o valoare a numelui de gazdă 127.0.0.1
(în loc de localhost
), sau adresa IP sau numele serverului local. De asemenea, puteți specifica explicit protocolul de transport, chiar și pentru localhost
, utilizând opțiunea --protocol=TCP
. Exemple:
mysql --host=127.0.0.1mysql --protocol=TCP
dacă serverul este configurat să accepte conexiuni IPv6, clienții se pot conecta la serverul local prin IPv6 folosind--host=::1
. A Se Vedea Secțiunea 5.1.13, „Suport IPv6”.
în Windows, pentru a forța un client MySQL să utilizeze o conexiune numită-pipe, specificați--pipe
sau--protocol=PIPE
opțiune sau specificați.
(perioadă) ca nume de gazdă. Dacă serverul nu a fost pornit cunamed_pipe
variabila de sistem activată pentru a suporta conexiuni cu conducte numite sau dacă utilizatorul care face conexiunea nu este membru al grupului Windows specificat de named_pipe_full_access_group
variabila de sistem, apare o eroare. Utilizați opțiunea --socket
pentru a specifica numele conductei dacă nu doriți să utilizați numele implicit al conductei.
conexiunile la serverele la distanță utilizează TCP / IP. Această comandă se conectează la serverul care rulează pe remote.example.com
folosind numărul de port implicit (3306):
mysql --host=remote.example.com
pentru a specifica în mod explicit un număr de port, utilizați --port
sau -P
opțiune:
mysql --host=remote.example.com --port=13306
puteți specifica un număr de port pentru conexiunile la un port server local, de asemenea. Cu toate acestea, așa cum s-a indicat anterior, conexiunile la localhost
pe Unix utilizează în mod implicit un fișier socket, deci dacă nu forțați o conexiune TCP/IP așa cum s-a descris anterior, orice opțiune care specifică un număr de port este ignorată.
pentru această comandă, programul folosește un fișier socket pe Unix și opțiunea --port
este ignorată:
mysql --port=13306 --host=localhost
pentru a determina utilizarea numărului de port, forțați o conexiune TCP / IP. De exemplu, invocați programul în oricare dintre aceste moduri:
mysql --port=13306 --host=127.0.0.1mysql --port=13306 --protocol=TCP
Pentru informații suplimentare despre opțiunile care controlează modul în care programele client stabilesc conexiuni la server, consultați secțiunea 4.2.3, „Opțiuni de comandă pentru conectarea la Server”.
este posibil să specificați parametrii conexiunii fără a-i introduce pe linia de comandă de fiecare dată când invocați un program client:
-
specificați parametrii conexiunii în secțiunea
a unui fișier de opțiuni. Secțiunea relevantă a fișierului poate arăta astfel:
host=host_nameuser=user_namepassword=password
pentru mai multe informații, consultați secțiunea 4.2.2.2, „utilizarea fișierelor opționale”.
-
unii parametri de conexiune pot fi specificați folosind variabile de mediu. Exemple:
-
pentru a specifica gazda pentru mysql, utilizați
MYSQL_HOST
. -
pe Windows, pentru a specifica numele de utilizator MySQL, utilizați
USER
.
pentru o listă de variabile de mediu acceptate, consultați secțiunea 4.9, „variabile de mediu”.
-