MySQL 5.1.31 fonctionnant sous Windows XP.
A partir de la locale serveur MySQL (192.168.233.142) Je peux connecter en tant que root comme suit:
>mysql --host=192.168.233.142 --user=root --password=redacted
Depuis une machine distante (192.168.233.163), je peux voir que le port mysql est ouvert:
# telnet 192.168.233.142 3306
Trying 192.168.233.142...
Connected to 192.168.233.142 (192.168.233.142).
Mais en essayant de me connecter à mysql depuis la machine distante , je reçois:
# mysql --host=192.168.233.142 --user=root --password=redacted
ERROR 1045 (28000): Access denied for user 'root'@'192.168.233.163' (using password: YES)
Je n'ai que 2 entrées dans mysql.user:
Host User Password
--------------------------------------
localhost root *blahblahblah
% root [same as above]
Que dois-je faire de plus pour activer l'accès à distance?
ÉDITER
Comme suggéré par Paulo ci-dessous, j'ai essayé de remplacer l'entrée mysql.user pour% par une entrée spécifique IP, donc ma table utilisateur ressemble maintenant à ceci:
Host User Password
------------------------------------------
localhost root *blahblahblah
192.168.233.163 root [same as above]
J'ai ensuite redémarré la machine, mais le problème persiste.
PASSWORD
par le mot de passe du compte. J'ai essayé le changement ci-dessus uniquementUSERNAME
etIP
cela n'a pas fonctionné pour moi jusqu'à ce que je changePASSWORD
.J'obtenais la même erreur après avoir accordé l'accès à distance jusqu'à ce que je fasse ceci:
De
/etc/mysql/my.cnf
Dans les versions plus récentes de mysql, l'emplacement du fichier est
/etc/mysql/mysql.conf.d/mysqld.cnf
(commenter cette ligne:
bind-address = 127.0.0.1
)Alors courez
service mysql restart
.la source
bind-address
n'ont pas fonctionné pour moi. Soitbind-address = 0.0.0.0
oubind-address = <server_ip>
fonctionne.Par défaut, dans le serveur MySQL, l'accès à distance est désactivé. Le processus pour fournir un accès à distance à l'utilisateur est.
PATH
mysql -uroot -proot
(ou quel que soit le mot de passe root).mysql>
Ici, IP est l'adresse IP pour laquelle vous souhaitez autoriser l'accès à distance, si nous mettons
%
une adresse IP peut accéder à distance.Exemple:
Ceci pour un autre utilisateur.
J'espère que cela aidera
la source
0 rows affected
c'est la norme :) Aussi,service mysqld restart
est recommandé à la fin. [mysqld
est parfois justemysql
]L'aide de Paulo m'a conduit à la solution. C'était une combinaison des éléments suivants:
Le shell bash traite le signe dollar comme un caractère spécial pour l' expansion vers une variable d'environnement, nous devons donc l'échapper avec une barre oblique inverse. Incidemment, nous n'avons pas à faire cela dans le cas où le signe dollar est le caractère final du mot de passe.
Par exemple, si votre mot de passe est "pas $ word", depuis Linux bash, nous devons nous connecter comme suit:
la source
mysql --host=192.168.233.142 --user=root --password='pas$word'
stackoverflow.com/a/6697781/500942As-tu un pare-feu ? assurez-vous que le port 3306 est ouvert.
Sous Windows, par défaut, un compte root mysql est créé et est autorisé à accéder à partir de localhost uniquement à moins que vous n'ayez sélectionné l'option permettant d'activer l'accès à partir de machines distantes lors de l'installation.
créer ou mettre à jour l'utilisateur souhaité avec '%' comme nom d'hôte.
exemple :
la source
Essayez à
flush privileges
nouveau.Essayez de redémarrer le serveur pour recharger les subventions.
Essayez de créer un utilisateur avec l'hôte "192.168.233.163". "%" semble ne pas tout autoriser (c'est bizarre)
la source
CREATE USER 'monty'@'%' IDENTIFIED BY 'some_pass'; GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%' WITH GRANT OPTION;
Dans mon cas, j'essayais de me connecter à un serveur mysql distant sur cent OS. Après avoir parcouru de nombreuses solutions (octroi de tous les privilèges, suppression des liaisons IP, activation de la mise en réseau), le problème n'était toujours pas résolu.
Il s'est avéré qu'en cherchant diverses solutions, je suis tombé sur iptables, ce qui m'a fait réaliser que le port mysql 3306 n'acceptait pas les connexions.
Voici une petite note sur la façon dont j'ai vérifié et résolu ce problème.
Vérification si le port accepte les connexions:
telnet (IP du serveur mysql) [portNo]
Ajout d'une règle de table ip pour autoriser les connexions sur le port:
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPTER
Je ne le recommanderais pas pour l'environnement de production, mais si vos iptables ne sont pas configurés correctement, l'ajout des règles peut ne pas toujours résoudre le problème. Dans ce cas, ce qui suit doit être fait:
arrêt du service iptables
J'espère que cela t'aides.
la source
si vous utilisez une adresse IP dynamique, accordez simplement l'accès à 192.168.2.%. Vous n'avez donc plus à vous soucier d'accorder l'accès à votre adresse IP à chaque fois.
la source
J'avais du mal à me connecter à distance à MYSQL pour mon instance Linux Amazon EC2. J'ai trouvé que la solution était de m'assurer que mon groupe de sécurité incluait une règle entrante pour le port MySQL 3306 afin d'inclure mon adresse IP (ou 0.0.0.0/0 pour n'importe où). Immédiatement pourrait se connecter à distance dès que j'ai ajouté cette règle.
la source
Le nouvel emplacement du fichier de configuration mysql est
la source
Le pilote MySQL ODBC 3.51 est que les caractères spéciaux dans le mot de passe ne sont pas gérés.
"Avertissement - Vous pourriez avoir de sérieux maux de tête avec MySQL ODBC 3.51 si le mot de passe de votre commande GRANT contient des caractères spéciaux, tels que! @ # $% ^?. Le pilote ODBC MySQL ODBC 3.51 ne prend pas en charge ces caractères spéciaux dans la zone de mot de passe. Le seul message d'erreur que vous recevriez est «Accès refusé» (en utilisant le mot de passe: OUI) »- de http://www.plaintutorials.com/install-and-create-mysql-odbc-connector-on-windows-7/
la source
La combinaison utilisateur / hôte peut avoir été créée sans mot de passe.
Je supposais que lors de l'ajout d'un nouvel hôte pour un utilisateur existant (à l'aide d'une application GUI), le mot de passe existant serait également utilisé pour la nouvelle combinaison utilisateur / hôte.
Je pourrais me connecter avec
localement, mais pas depuis IPADDRESS avec
(Je pourrais en fait me connecter depuis IPADDRESS sans utiliser de mot de passe)
Définition du mot de passe pour l'accès autorisé:
la source
ERROR 1372 (HY000): Password hash should be a 41-digit hexadecimal number
qui m'a conduit à cet article: knowmysql.blogspot.com/2013/09/… Après avoir suivi ces étapes, j'ai enfin pu me connecter au serveur.