Mysql
 sql >> Database >  >> RDS >> Mysql

Connessione a database MySQL


Introduzione

Una delle prime cose a cui devi pensare quando lavori con un database MySQL è come connetterti e interagire con l'istanza del database. Ciò richiede il coordinamento tra il client del database, il componente che utilizzi per interagire con il database, e il server del database, l'istanza MySQL effettiva che archivia, organizza e fornisce l'accesso ai tuoi dati.

Per questo motivo, è necessario comprendere come connettersi come client fornendo le informazioni necessarie per l'autenticazione. In questa guida, illustreremo come connettersi a un database MySQL utilizzando il nativo mysql client della riga di comando:uno dei modi più comuni e utili per interagire con un'istanza di database.

In una guida complementare, puoi scoprire come configurare l'autenticazione di MySQL per soddisfare le esigenze del tuo progetto. Prendi in considerazione la lettura di entrambe le guide per un quadro più completo di come funziona l'autenticazione in MySQL.



Informazioni di base su mysql cliente

Il mysql client è il client della riga di comando predefinito e la shell SQL per MySQL. Puoi usarlo in modo interattivo per generare una sessione di shell con il tuo server o puoi fornirgli file SQL da eseguire senza l'interazione dell'utente. È particolarmente utile quando si implementano le opzioni di configurazione e si configura l'ambiente. Anche l'esplorazione interattiva e le query ad hoc sono un punto di forza durante lo sviluppo dei modelli di accesso che verranno utilizzati dai tuoi programmi.

Il modo in cui connettersi e autenticarsi con un server MySQL dipende dalla configurazione del server. Nelle sezioni seguenti, esamineremo alcune delle opzioni di connessione di base. Per motivi di chiarezza, faremo una distinzione tra connessioni locali e remote:

  • connessione locale :una connessione in cui il client e l'istanza MySQL si trovano sullo stesso server
  • connessione remota :dove il client si connette a un'istanza MySQL accessibile in rete in esecuzione su un computer diverso

Iniziamo con la connessione a un database dallo stesso computer.



Connessione a un database locale con mysql

Senza alcun argomento, mysql comando tenta di connettersi a un file socket Unix per accedere a un database locale. Di solito, la posizione del file socket predefinito è determinata da un file di configurazione o da un valore predefinito compilato. Per impostazione predefinita, il nome utente del tuo sistema operativo viene utilizzato per tentare di connettersi al database.

Quindi, se il tuo attuale utente è un utente MySQL valido sul tuo database locale, puoi provare a connetterti digitando:

mysql

Se l'account esiste e non richiede una password o se l'autenticazione del socket MySQL è configurata per l'account, l'accesso verrà eseguito automaticamente. Se il nome utente non esiste in MySQL o se è richiesta una password o un'ulteriore autenticazione, il comando avrà esito negativo.

Per controllare il modo in cui mysql prova ad accedere al database, passa informazioni aggiuntive con il tuo comando usando le opzioni della riga di comando:

  • --user=<username> o -u <username> :specifica l'utente MySQL con cui autenticarsi.
  • --password o -p :dice a MySQL di richiedere una password per l'utente MySQL.
  • --host=127.0.0.1 o -h 127.0.0.1 :dice a mysql per connettersi all'istanza MySQL locale utilizzando l'indirizzo di loopback TCP locale anziché un socket Unix. Questo è importante da usare se il tuo server MySQL non è configurato per usare i socket Unix.

Nota: MySQL interpreta 127.0.0.1 diversamente da localhost . Specificando 127.0.0.1 indica che vuoi usare una connessione TCP, mentre localhost farà sì che MySQL tenti di utilizzare un socket Unix per connettersi al database locale.

Quindi, se hai bisogno di accedere come utente MySQL eva con una password, ma sempre utilizzando il socket Unix per la connessione, puoi digitare:

mysql --user=eva --password

Il mysql client ti chiederà una password per l'account.

Se vuoi provare ad accedere con lo stesso nome utente ma su una connessione TCP al database locale, dovresti invece digitare:

mysql --user=eva --password --host=127.0.0.1

La configurazione di autenticazione predefinita, nonché il nome utente e la password amministrativi iniziali possono variare a seconda di come è stato installato MySQL. Molti metodi, tuttavia, impostano MySQL in modo che utilizzi un socket Unix e includa una root predefinita utente come account amministrativo.

In questi casi, puoi accedere al database come root utente digitando:

mysql --user=root --password

Ti verrà richiesta la password amministrativa che è stata selezionata o generata durante l'installazione per procedere.

Tutti questi metodi ti consentono di connetterti a un database MySQL locale.



Connessione a un database remoto

Se desideri connetterti a un database MySQL remoto, dovrai fornire la posizione di rete dell'host remoto e potenzialmente aggiungere alcune informazioni aggiuntive.

I metodi di autenticazione disponibili variano in base alla configurazione dell'istanza MySQL. Nella maggior parte dei casi, tuttavia, è necessario fornire i seguenti parametri per l'autenticazione:

Opzione Descrizione
--host= o -h Il nome host di rete o l'indirizzo IP del server MySQL.
--port= o -P La porta di rete su cui è in esecuzione il server MySQL. Se il server utilizza la porta 3306, la porta MySQL predefinita, questo parametro potrebbe essere omesso.
--user= o -u Il nome utente del database con cui desideri connetterti. Se non specificato, verrà utilizzato il nome utente del tuo sistema operativo.
--password o -p Indica che vuoi fornire una password per l'account specificato. Il mysql il client ti chiederà la password dopo aver premuto Invio .
Database MySQL Il nome del database MySQL a cui vuoi accedere. Se non specificato, mysql si connetterà al server senza connettersi a un database specifico.

Il formato di base per la connessione a un database remoto in genere è simile a questo:

mysql --host=<hostname> --port=<port> --user=<user> --password <database>

Dopo aver premuto Invio , il mysql client ti chiederà la password. Se ti autentichi correttamente, verrà avviata una nuova sessione MySQL interattiva.

Ad esempio, possiamo immaginare di volerci connettere ad un database con i seguenti requisiti:

  • nome host:myhost
  • porta:1234
  • database:applicationdb
  • nome utente:myapplicationuser
  • password:mypass

Chiamando mysql con le seguenti opzioni ti permetterebbe di autenticarti:

mysql --host=myhost --port=1234 --user=myapplicationuser --password applicationdb

Dopo aver premuto invio, ti verrà richiesta una password per autenticarti con mypass .



Regolazione della configurazione di autenticazione di un server MySQL

Se desideri modificare le regole che determinano il modo in cui gli utenti possono autenticarsi sulle tue istanze MySQL, puoi farlo modificando la configurazione del tuo server. Puoi scoprire come modificare la configurazione di autenticazione di MySQL in questo articolo.



Conclusione

In questa guida, abbiamo trattato l'autenticazione MySQL dal lato client. Abbiamo dimostrato come usare mysql client della riga di comando per la connessione a istanze di database sia locali che remote.

Sapere come connettersi a varie istanze MySQL è uno dei primi passi che devi capire quando inizi a lavorare sul sistema di database. Puoi eseguire un'istanza MySQL locale per lo sviluppo che non richiede alcuna autenticazione speciale, ma i tuoi database in fase di staging e produzione richiederanno quasi sicuramente l'autenticazione. Essere in grado di autenticarti in entrambi i casi ti consentirà di lavorare bene in ambienti diversi.