Ik probeer het mogelijk te maken dat een website die zich elders bevindt bepaalde gegevens uit mijn database kan ophalen, tot nu toe zonder het gewenste resultaat want de website kan geen verbinding maken ( Can't connect to MySQL server)
Dit is wat ik heb gedaan:
1.
mysql> GRANT SELECT ON mijndatabase.mijntabel TO nieuwegebruiker@’ipadres-van-externe-website’ IDENTIFIED BY ‘wachtwoord’;
2. open port 3306 mysql
sudo iptables -A INPUT -p tcp -s 0/0 --sport 1024:65535 -d ipadresexternewebsite --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp -s ipexterneadreswebsite --sport 3306 -d 0/0 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
config van *.php pagina op de externe website die contact gaat maken met mijn server
Het mysql proces mysqld "luistert" default alleen op localhost 127.0.0.1 is wat Ivo bedoelt en dat is waarschijnlijk dat wat je nog moet configureren. De kans bestaat dat je dan ook je eigen php scripts waarin "localhost" staat ook aan moet passen. Gebruik daarvoor in de plaats nu het ipnummer van de server en dus niet het ipnummer van buiten tenzij de server direct aan internet hangt uiteraard (zonder NAT dus). Na het aanpassen moet je de mysqld herstarten. Zie ook de telnet-tip van Ivo.
Uit interesse, waarom zijn de SQL-database en de website beide op een gescheiden netwerk? Of is het zo dat je externe personen/bedrijven toegang verschaft tot je database?
Als je externe personen toegang verschaft, zou ik eerder een op maat gemaakte API maken die alleen de data verschaft die ze nodig hebben. Het zou rot zijn als ze bijvoorbeeld toegang hadden tot (gehashte) wachtwoorden of financiële gegevens.
Ik heb alleen GRANT SELECT ON toegestaan,daarmee kunnen ze toch geen wachtwoorden opvragen?
Ik ben wel geinteresseerd om een api te maken maar hpoe doe je dat, waar begin ik? (ik had eerst wat gestoeid met curl) maar mijn website heeft auth. en ik kreeg het niet voor elkaar.