GNU/Linux >> Tutoriels Linux >  >> Linux

Tester les informations d'identification MySQL à partir de la ligne de commande Linux ?

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

Cela vous permet d'utiliser la même chaîne de connexion que celle que vous utilisez pour envoyer par programmation des requêtes au serveur. Vous pouvez ajouter || exit 1 jusqu'à la fin pour quitter automatiquement sur des arguments non valides. Vous pouvez également rediriger stderr vers /dev/null si vous n'aimez pas le message d'erreur MySQL généré automatiquement.


Vous pouvez utiliser la commande suivante (en supposant que mysql soit configuré dans votre PATH) :

mysql -h hôte -u utilisateur -p

Remplacez simplement host et utilisateur avec les valeurs correctes, puis vous devriez être invité à entrer votre mot de passe.


La réponse de @Phil et la réponse de @Mr.Brownstone devraient suffire à votre question, donc +1 pour les deux.

Pour ce qui suit, supposons que vous vous connectez avec le nom d'utilisateur myuser

Une fois connecté à mysql, vous devez exécuter la requête suivante :

SELECT USER(),CURRENT_USER();
  • USER() indique comment vous avez tenté de vous authentifier dans MySQL
  • CURRENT_USER() indique comment vous avez été autorisé à vous authentifier dans MySQL

Parfois, ils sont différents. Cela peut vous donner un aperçu de la raison pour laquelle vous êtes autorisé à vous connecter à mysql.

Voici une autre requête que vous devez exécuter :

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

Cela vous montrera comment vous êtes autorisé à vous connecter en tant que myuser .

Si vous voyez 'myuser'@'localhost' , vous pouvez alors vous authentifier depuis le serveur de base de données.

Si vous voyez 'myuser'@'127.0.0.1' et ne voyez pas 'myuser'@'localhost' , vous pouvez vous authentifier à nouveau depuis le serveur de base de données, mais vous devez spécifier le --protocol=tcp depuis la ligne de commande.

Si vous voyez 'myuser'@'%' , vous pouvez alors vous connecter à distance depuis n'importe quel serveur.

Si vous voyez 'myuse'[email protected]'10.20.30,%' , alors vous ne pouvez effectuer des connexions à distance qu'à partir du 10.20.30.% netblock.

Une fois que vous voyez ce que 'mysql.user' a pour votre utilisateur, vous pouvez autoriser ou empêcher myuser de se connecter d'une manière et pas de l'autre.

Si vous voulez simplement vérifier si le mot de passe pour myuser est whateverpassword , vous pouvez effectuer les opérations suivantes :

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

Vous pouvez vérifier à partir de la ligne de commande comme suit :

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

Si vous n'êtes pas root et que vous souhaitez tester myuser uniquement, vous pouvez le faire :

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

Si vous obtenez 1, le mot de passe pour myuser est vérifié comme bon.


Linux
  1. Comment exécuter des requêtes MySQL/MariaDB directement à partir de la ligne de commande Linux

  2. 4 façons d'envoyer une pièce jointe à partir de la ligne de commande Linux

  3. Rechercher des torrents à partir de la ligne de commande sous Linux

  4. Commande Linux su

  5. tronquer la table via la ligne de commande sous Linux

Commande Usermod sous Linux

Comment redémarrer (redémarrer) Linux à partir de la ligne de commande

Commande userdel - Supprimer le compte d'utilisateur du système Linux

Comment tester la vitesse d'Internet en utilisant la ligne de commande sous Linux

Comment vérifier les détails météorologiques à partir de la ligne de commande sous Linux

Envoyer un e-mail sous Linux à partir de la ligne de commande