2017-09-19 2 views
10

J'essaie actuellement d'exécuter une application sur un serveur, mais mon client est très "pointilleux" sur ses données et souhaite stocker la base de données sur son propre serveur interne. J'ai installé MySQL et peux obtenir l'application pour s'exécuter localement mais pour quelques raisons spécifiques l'application doit courir ailleurs où.Accès à distance à MySQL sur Mac Mini/Time Capsule

Je ne peux pas accéder à MySQL depuis un emplacement différent. Je pense que ma principale pierre d'achoppement est la redirection de port vers l'emplacement correct. MySQL est installé sur un mac mini avec l'adresse IP locale 192.168.1.242 et le routeur/modem est une Apple Time Capsule. J'ai essayé de regarder des tutoriels, mais ils ont tous des options auxquelles je n'ai pas accès. J'ai joint une capture d'écran des options auxquelles j'ai accès et des paramètres que j'ai essayés jusqu'à présent.

enter image description here enter image description here

Autres informations éventuellement nécessaires est:

  • Je dois vous connecter depuis PHP
  • J'ai mis un utilisateur au sein de MySQL avec un caractère générique (%)
  • Je le teste en utilisant la commande suivante: sur ma machine locale dans CMD: mysql -u nom d'utilisateur -h adresse_ip_distant -p
  • je reçois l'erreur suivante: erreur 2003 (HY000): Impossible de se connecter au serveur MySQL sur 'REMOTE_IP_ADDRESS' (10061)
  • Pare-feu est désactivé complètement sur le Mac Mini
  • Il n'y a rien dans le fichier my.cnf
  • OS est Sierra

C'est tout ce que je peux penser au moment, mais des conseils serait grandement apprécié et plus d'informations nécessaires peuvent être à condition de.

PS. évidemment, je ne suis pas très bon avec les machines/réseaux MAC

+0

Il suffit de vérifier que l'adresse "Remote_ip_address" que vous tapez est l'adresse WAN externe du client, et non l'adresse IP LAN 192.168.1.242 interne. Correct? La réservation DHCP et le transfert de port sur l'aéroport semblent corrects. – JNevill

+1

Oui c'est correct, évité certains détails pour des raisons de sécurité mais oui je pointe vers l'adresse WAN – user1530205

+0

Au lieu de me fier à la commande MySQL pour tester, pouvez-vous passer à netcat (netcat -vv remote_address 3306) ou telnet (telnet remote_address 3306') et voyez si vous pouvez obtenir une connexion. Je suppose que vous ne pouvez pas donner l'erreur que MySQL est donné, mais cela vaut la peine d'une étape de dépannage. Avec 'telnet' vous pouvez taper' quit' pour quitter si vous réussissez une connexion et que vous devez quitter. – JNevill

Répondre

0

MySQL a un pare-feu interne d'utilisateurs/IP. Même si vous pouvez connecter localement, vous ne pourriez pas avoir la permission à distance: (! Localement en premier)

Essayez cela comme root utilisateur sur le serveur MySQL

GRANT ALL ON <db>.* TO '<user>'@'<remoteIP>' IDENTIFIED BY '<password>'; 

<db> est le nom du DB

<user> est le nom sous lequel vous vous connectez

<remoteIP> i s votre bureau externe IP FROM que vous essayez de vous connecter

<password> devrait être explicite!

This will explain the options better

1

Pour toute personne qui lit ce que j'avais une question très spécifique.J'ai installé MySQL en utilisant homebrew. Homebrew lie MySQL à 127.0.0.1 par conséquent, ne permettra que des connexions à MySQL à partir de la même machine, peu importe ce que vous essayez de faire. Pour le réparer, j'ai dû éditer /usr/local/Cellar/mysql//homebrew.mxcl.mysql.plist et remplacer --bind-address = 127.0.0.1 par bind-address = *.