GNU/Linux >> Linux Esercitazione >  >> Linux

Testare le credenziali MySQL dalla riga di comando di Linux?

mysql -h host -u user -p<whatever> -e"quit"

Ciò consente di utilizzare la stessa stringa di connessione utilizzata per l'invio di query al server a livello di codice. Puoi aggiungere || exit 1 alla fine per uscire automaticamente in caso di argomenti non validi. Potresti anche voler reindirizzare stderr a /dev/null se non ti piace il messaggio di errore MySQL generato automaticamente.


Puoi usare il seguente comando (supponendo che tu abbia configurato mysql nel tuo PATH):

mysql -h host -u utente -p

Basta sostituire host e utente con i valori corretti e ti dovrebbe essere richiesta la password.


La risposta di @Phil e la risposta di @Mr.Brownstone dovrebbero essere sufficienti per la tua domanda, quindi +1 per entrambe.

Per quanto segue, supponiamo che tu stia effettuando l'accesso con il nome utente myuser

Dopo esserti connesso a mysql, dovresti eseguire la seguente query:

SELECT USER(),CURRENT_USER();
  • USER() segnala come hai tentato di autenticarti in MySQL
  • CURRENT_USER() segnala come sei stato autorizzato ad autenticarti in MySQL

A volte, sono diversi. Questo potrebbe darti un'idea del motivo per cui sei autorizzato ad accedere a mysql.

Ecco un'altra query che devi eseguire:

SELECT CONCAT('''',user,'''@''',host,'''') dbuser,password
FROM mysql.user WHERE user='myuser';

Questo ti mostrerà i modi in cui puoi accedere come myuser .

Se vedi 'myuser'@'localhost' , allora puoi autenticarti dall'interno del DB Server.

Se vedi 'myuser'@'127.0.0.1' e non vedi 'myuser'@'localhost' , allora puoi autenticarti nuovamente dall'interno del DB Server ma devi specificare --protocol=tcp dalla riga di comando.

Se vedi 'myuser'@'%' , quindi puoi eseguire accessi remoti da qualsiasi server.

Se vedi 'myuse'[email protected]'10.20.30,%' , allora puoi eseguire accessi remoti solo dal 10.20.30.% netblock.

Una volta che hai visto cosa ha 'mysql.user' per il tuo utente, potresti voler consentire o impedire a myuser di accedere in un modo e non nell'altro.

Se vuoi semplicemente controllare se la password per myuser è whateverpassword , puoi eseguire le seguenti operazioni:

SELECT COUNT(1) Password_is_OK FROM mysql.user
WHERE user='myuser'
AND password=PASSWORD('whateverpassword');

Puoi controllare dalla riga di comando come segue:

PASSWORDISOK=`mysql -uroot -p... -ANe"SELECT COUNT(1) Password_is_OK FROM mysql.user WHERE user='myuser' AND password=PASSWORD('whateverpassword')"`

Se non sei root e vuoi testare solo myuser, puoi farlo:

PASSWORDISOK=`mysqladmin -umyuser -pwhateverpassword ping | grep -c "mysqld is alive"`

Se ottieni 1, la password per myuser è verificata come valida.


Linux
  1. Configura un'area di lavoro Linux in remoto dalla riga di comando

  2. Come eseguire query MySQL/MariaDB direttamente dalla riga di comando di Linux

  3. 4 modi per inviare allegati e-mail dalla riga di comando di Linux

  4. Cerca torrent dalla riga di comando in Linux

  5. troncare la tabella tramite la riga di comando in Linux

Comando Usermod in Linux

Come riavviare (riavviare) Linux dalla riga di comando

comando userdel - Elimina l'account utente dal sistema Linux

Come testare la velocità di Internet usando la riga di comando in Linux

Come controllare i dettagli meteorologici dalla riga di comando in Linux

Invia e-mail in Linux dalla riga di comando