Accéder à une base de données mysql depuis un hôte / ip externe? (c'est-à-dire: mysql workbench)
J'ai un serveur mysql sur x.x.x.x, et que vous pouvez accéder en interne, pas de problème (bien sûr). Toutefois, lorsque vous essayez de connecter de l'extérieur, c'est à dire l'utilisation de mysql workbench, ou même à partir d'un serveur externe, j'obtiens le message d'erreur "l'Hôte" bla.bla.bla "n'est pas autorisée à se connecter au serveur MySQL".
J'ai fait:
GRANT ALL PRIVILEGES ON *.* TO [email protected] IDENTIFIED BY "somepass";
- Et j'ai ouvert le port 3306 dans iptables.
Est là un autre aspect fondamental de la sécurité de problème, je suis absent?
source d'informationauteur Jon | 2011-05-06
Vous devez vous connecter pour publier un commentaire.
Que vous devez faire
La partie après le
@
est l'hôte à partir duquel la connexion est à venir, si vous avez autorisé les connexions venant de localhost. Vous devez autoriser l'accès à partir de chaque ordinateur hôte à distance nécessaire (ou tous les hôtes -... mysql@'%' ...
- si applicable).Pour résoudre ce problème, vous nécessaires pour effectuer les commandes suivantes:
J'ai eu exactement la même situation.mon MYSQL est installé sur un centOS.
Le chemin vers le Nirvana est comme ci-dessous.
SOLUTION:je suis allé à la pêche dans la iptables et faites les changements suivants:
Si vous trouvez que les déclarations ci-dessous en COMMENTAIRES en ajoutant un " # " au début de la ligne.
-A INPUT-s 123.123.123.123/32 -p tcp -m state --state NEW-m tcp --dport 3306 -j ACCEPT
-A INPUT-j REJECT --reject-avec icmp-accueil-interdiction
-A OUTPUT-p tcp -m tcp --dport 3306 -j ACCEPT
Redémarrer la iptables à l'aide de la commande: service iptables restart
Yep, ça a fonctionné pour moi. J'espère que c'est utile à quelqu'un.
Quand j'ai Eu mon serveur,même j'ai eu le même problème d'accès à la base de données mysql de MySQL client de l'application,
Puis j'ai accordé à la base de l'autorisation, avec la requête suivante.
il a travaillé beaucoup
Une fois que vous exécutez cette chasse, par la commande suivante
FLUSH PRIVILEGES;
Suppose que si vous êtes à la recherche d'accorder des privilèges pour accéder à certaines tables de la Base de données, vous pouvez utiliser la commande suivante
Où
HELLOWORLD
est le Nom de la tableÊtes-vous connecter en tant qu'utilisateur mysql? Vous pouvez essayer d'exécuter la SUBVENTION de la requête comme suit :
GRANT ALL PRIVILEGES ON *.* TO [email protected] IDENTIFIED BY "somepass";
Avez-vous vérifié que mysql workbench est d'essayer de la connecter en utilisant le nom d'utilisateur approprié? Avez-vous vidé les privilèges après l'exécution de la subvention de commande?
Je ne sais pas les tenants et les aboutissants de la sécurité dans cette
bind-address
chose, juste de l'apprentissage par l'installation d'un serveur debian sur une machine virtuelle machine de boîte.Ce client a une carte réseau virtuelle mis en place comme un pont, de sorte que le reste de la maison peut le voir. Son adresse IP est 192.168.1.4.
À partir d'un autre ordinateur (192.168.1.3), échec de la connexion avec
bind-address = 127.0.0.1
.Configurer
bind-address = 192.168.1.4
fonctionne très bien.(sa propre adresse, littéralement)
Il doit être l'interprétation de 127.0.0.1 à l'intérieur d'un virtuel de config, je ne sais pas...
En commentaire la ligne:
dans votre MySQL mon.fichier conf. Il est normalement situé dans /etc/mysql/my.conf.