J'essaie de faire en sorte que le client mysql se connecte à un serveur mysql sans exiger que le mot de passe soit donné de manière interactive. Mesures prises:
1) Créez d'abord un fichier mylogin.cnf
$ mysql_config_editor set --user=<user> --password --host=<host>
Enter password:
2) Fichier créé avec succès:
$ ls -la .mylogin.cnf
-rw-------. 1 urmt urmt 136 Dec 19 11:01 .mylogin.cnf
$ mysql_config_editor print --all
[client]
user = <user>
password = *****
host = <host>
3) Connectez-vous en utilisant le client mysql
$ mysql <dbname>
ERROR 1045 (28000): Access denied for user '<user>'@'<host>' (using password: NO)
Y a-t-il une valeur / configuration par défaut quelque part qui oblige le client à ignorer le mot de passe dans mylogin.cnf? Les propriétés utilisateur et hôte ont été lues correctement dans le fichier.
Je peux me connecter très bien si je fournis le mot de passe sur la ligne de commande:
$ mysql -p <dbname>
Enter password:
Reading table information...
...
mysql>
La version du client MySQL est 5.6.22, la version du serveur MySQL est 5.6.22, à la fois sur Oracle Linux 6. Le client et le serveur sont sur des hôtes différents.
Merci
-pyour_pass
ou--password=your_pass
sur la ligne de commande (...) C'est pratique mais pas sûr ."utilisez la commande suivante pour définir d'abord le chemin de connexion
puis utilisez la commande ci-dessous pour vous connecter à mysql
L'aide sur les options de chemin de connexion mysql peut être vue par
la source
J'ai eu le même problème que OP, mais les réponses dans ce fil m'ont confondu. Le lien de Vinay Mandala a réellement fonctionné pour moi. Republié ici pour plus de clarté.
Mon problème:
Cela prouve que
mysql_config_editor
ne gère pas correctement les caractères spéciaux dans le mot de passe.Solution:
Lorsque
mysql_config_editor
vous êtes invité à entrer le mot de passe, assurez-vous de l'entourer de guillemets (") . Ensuite, vous pouvez vous connecter très bien.la source
J'obtenais cette erreur, sauf qu'elle disait (en utilisant le mot de passe: OUI)
La raison mentionnée par Giovanni était due à un "#" dans le mot de passe. J'ai trouvé qu'une solution de contournement consiste à insérer des guillemets autour de votre mot de passe lorsque vous y êtes invité. La même restriction existe avec les mots de passe en texte brut utilisant .my.cnf.
la source
La réponse Nawaz est correcte. J'ai peu à ajouter. Je vous suggère de faire quelques tentatives avec la variable d'environnement MYSQL_TEST_LOGIN_FILE pour créer un nouveau fichier de configuration, juste au cas où le fichier par défaut est corrompu. Utilisez également
--no-defaults
pour ignorer les.cnf
fichiers. Si le mot de passe contient le caractère#
,mysql login-path
ne fonctionne pas.la source
mysql
commande estmysql
? Sinon, changez le propriétaire demylogin.cnf
et cela devrait fonctionner :)Je rencontre un problème similaire à celui de l'affiche originale. Je soupçonne que cela a à voir avec les caractères du mot de passe qui ne sont pas cryptés / décryptés correctement.
Pour confirmer, essayez de changer le mot de passe en quelque chose de simple et voyez si ce problème disparaît.
la source
J'ai eu ce problème avec un script shell. Mon script modifiait la valeur de $ HOME et cela a fait que --login-path = *** semblait être ignoré. Lorsque j'ai arrêté de modifier la valeur $ HOME, cela a commencé à fonctionner.
la source
REMARQUE si vous essayez d'exécuter le
path
sous l' utilisateur linuxroot
- Vous ne pouvez pas simplement utilisersudo
. Vous devez vous connecter en tant qu'IE racineAussi, comme mentionné dans d'autres articles ici .. Vous devez utiliser des guillemets doubles autour de votre
mysql
mot de passe s'il contient autre chose que des caractères alphanumériques.la source