MySQL :: MySQL 8.0 Manuale di Riferimento :: 4.2.4 la Connessione al Server MySQL Utilizzando le Opzioni di Comando

4.2.4 la Connessione al Server MySQL Utilizzando le Opzioni di Comando

in Questa sezione descrive l’uso delle opzioni della riga di comando per specificare come stabilire connessioni al server MySQL, per clienti come mysql o mysqldump. Per informazioni su come stabilire connessioni usando stringhe di connessione simili a URI o coppie chiave-valore, per client come MySQL Shell, vedere Sezione 4.2.5, “Connessione al server usando stringhe simili a URI o coppie chiave-valore”. Per ulteriori informazioni se non è possibile connettersi, vedere Sezione 6.2.21, “Risoluzione dei problemi di connessione a MySQL””

Affinché un programma client si connetta al server MySQL, deve utilizzare i parametri di connessione appropriati, come il nome dell’host in cui è in esecuzione il server e il nome utente e la password del proprio account MySQL. Ogni parametro di connessione ha un valore predefinito, ma è possibile sovrascrivere i valori predefiniti se necessario utilizzando le opzioni del programma specificate nella riga di comando o in un file di opzioni.

Gli esempi qui utilizzano il programma client mysql, ma i principi si applicano ad altri client come mysqldump, mysqladmin o mysqlshow.

Questo comando richiama mysql senza specificare esplicitamente i parametri di connessione:

mysql

Perché non ci sono le opzioni del parametro, si applicano i valori predefiniti:

  • Il nome host predefinito è localhost. Su Unix, questo ha un significato speciale, come descritto più avanti.

  • Il nome utente predefinito è ODBC su Windows o il nome di accesso Unix su Unix.

  • Non viene inviata alcuna password perché non viene fornita né --password-p.

  • Per mysql, il primo argomento nonoption viene preso come nome del database predefinito. Poiché non esiste tale argomento, mysql non seleziona alcun database predefinito.

Per specificare esplicitamente il nome host e il nome utente, nonché una password, fornire le opzioni appropriate sulla riga di comando. Per selezionare un database predefinito, aggiungere un argomento nome database. Esempi:

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

Per opzioni di password, la password è opzionale:

  • Se si utilizza un --password o -p opzione consente di specificare una password di valore, ci deve essere spazio tra --password= o -p e la password seguenti.

  • Se si utilizza--passwordo-p ma non si specifica un valore di password, il programma client richiede di inserire la password. La password non viene visualizzata quando viene immessa. Questo è più sicuro che dare la password sulla riga di comando, che potrebbe consentire ad altri utenti del sistema di vedere la riga della password eseguendo un comando come ps. Vedere Sezione 6.1.2.1, “Linee guida per l’utente finale per la sicurezza delle password””

  • Per specificare esplicitamente che non esiste una password e che il programma client non deve richiederne una, utilizzare l’opzione --skip-password.

Come appena accennato, includere il valore della password sulla riga di comando è un rischio per la sicurezza. Per evitare questo rischio, specificare l’opzione --password o -p senza il seguente valore della password:

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

Quando l’opzione --passwordo -p viene fornita senza alcun valore di password, il programma client stampa un prompt e attende che tu inserisca la password. (In questi esempi, mydb non viene interpretato come password perché è separato dall’opzione password precedente da uno spazio.)

Su alcuni sistemi, la routine di libreria utilizzata da MySQL per richiedere una password limita automaticamente la password a otto caratteri. Questa limitazione è una proprietà della libreria di sistema, non MySQL. Internamente, MySQL non ha alcun limite per la lunghezza della password. Per aggirare la limitazione dei sistemi interessati, specificare la password in un file di opzione (vedere Sezione 4.2.2.2, “Utilizzo dei file di opzione”). Un’altra soluzione è cambiare la password MySQL in un valore che ha otto o meno caratteri, ma che ha lo svantaggio che le password più brevi tendono ad essere meno sicure.

I programmi client determinano il tipo di connessione da effettuare come segue:

  • Se l’host non è specificato o è localhost, una connessione all’host locale si verifica:

    • Su Windows, il client si connette tramite memoria condivisa, se il server è stato avviato con il shared_memory variabile di sistema abilitato per il supporto di memoria condivisa connessioni.

    • Su Unix, i programmi MySQL trattano il nome host localhost in modo particolare, in un modo che è probabilmente diverso da quello che ci si aspetta rispetto ad altri programmi basati sulla rete: il client si connette utilizzando un file socket Unix. L’opzione--socket o la variabile di ambienteMYSQL_UNIX_PORT può essere utilizzata per specificare il nome del socket.

  • Su Windows, se host. (periodo), o TCP/IP non è abilitato e --socket non è specificato o l’host è vuoto, il client si connette tramite una pipe con nome, se il server è stato avviato con il named_pipe variabile di sistema in grado di supportare named-pipe connessioni. Se le connessioni named-pipe non sono supportate o se l’utente che effettua la connessione non è membro del gruppo Windows specificato dalla variabile di sistema named_pipe_full_access_group, si verifica un errore.

  • Altrimenti, la connessione utilizza TCP / IP.

L’opzione --protocol consente di utilizzare un particolare protocollo di trasporto anche quando altre opzioni normalmente comportano l’uso di un protocollo diverso. Cioè,--protocol specifica esplicitamente il protocollo di trasporto e sovrascrive le regole precedenti, anche perlocalhost.

Vengono utilizzate o controllate solo le opzioni di connessione rilevanti per il protocollo di trasporto selezionato. Altre opzioni di connessione vengono ignorate. Ad esempio, con --host=localhost su Unix, il client tenta di connettersi al server locale utilizzando un file socket Unix, anche se viene fornita un’opzione --port o -P per specificare un numero di porta TCP/IP.

assicurarsi che il client effettua una connessione TCP/IP per il server locale, utilizzare --host o -h per specificare un nome host valore di 127.0.0.1 (invece di localhost), o l’indirizzo IP o il nome del server locale. È inoltre possibile specificare esplicitamente il protocollo di trasporto, anche per localhost, utilizzando l’opzione --protocol=TCP. Esempio:

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

Se il server è configurato per accettare connessioni IPv6, i client possono connettersi al server locale tramite IPv6 utilizzando--host=::1. Vedere Sezione 5.1.13, “Supporto IPv6”.

Su Windows, per forzare un client MySQL a utilizzare una connessione named-pipe, specificare l’opzione--pipe o--protocol=PIPE o specificare. (punto) come nome host. Se il server non è stato avviato con la variabile di sistemanamed_pipe abilitata per supportare connessioni named-pipe o se l’utente che effettua la connessione non è membro del gruppo Windows specificato dalla variabile di sistema named_pipe_full_access_group, si verifica un errore. Utilizzare l’opzione--socket per specificare il nome della pipe se non si desidera utilizzare il nome di pipe predefinito.

Le connessioni ai server remoti utilizzano TCP / IP. Questo comando si connette al server in esecuzione su remote.example.com utilizzando il numero di porta predefinito (3306):

mysql --host=remote.example.com

Per specificare esplicitamente un numero di porta, utilizzare l’opzione --port o -P:

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

È possibile specificare un numero di porta per le connessioni a anche il server. Tuttavia, come indicato in precedenza, le connessioni a localhost su Unix utilizzano un file socket per impostazione predefinita, quindi, a meno che non si costringa una connessione TCP/IP come descritto in precedenza, qualsiasi opzione che specifica un numero di porta viene ignorata.

Per questo comando, il programma utilizza un file socket su Unix e l’opzione--port viene ignorata:

mysql --port=13306 --host=localhost

Per far sì che il numero di porta venga utilizzato, forzare una connessione TCP/IP. Ad esempio, richiamare il programma in uno dei seguenti modi:

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

Per ulteriori informazioni sulle opzioni che controllano il modo in cui i programmi client stabiliscono le connessioni al server, vedere Sezione 4.2.3, “Opzioni di comando per la connessione al server”.

è possibile specificare i parametri di connessione senza entrare nella linea di comando ogni volta che si richiama un programma client:

  • Specificare i parametri di connessione nel sezione di un file di opzioni. La sezione pertinente del file potrebbe essere simile a questa:

    host=host_nameuser=user_namepassword=password

    Per ulteriori informazioni, vedere Sezione 4.2.2.2, “Utilizzo dei file di opzioni”.

  • Alcuni parametri di connessione possono essere specificati utilizzando variabili di ambiente. Esempio:

    • Per specificare l’host per mysql, utilizzareMYSQL_HOST.

    • Su Windows, per specificare il nome utente MySQL, utilizzareUSER.

    Per un elenco delle variabili d’ambiente supportate, vedere Sezione 4.9, “Variabili d’ambiente”.



Lascia un commento

Il tuo indirizzo email non sarà pubblicato.