Database aanroepen vanaf verschillend domein?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

G Jansma

G Jansma

28/08/2017 14:04:28
Quote Anchor link
Misschien een domme vraag, maar vraag me dit al een tijdje af. Als je twee losse domeinen + database (ook bij verschillende hostings) hebt, kan je dan op het ene gebruik maken van een tabel uit de database behorend bij de ander?

Ik heb bij de ene verbinding met de host (dmv IP) maar bij de ander krijg ik dan de melding: "Failed to connect to MySQL: No route to host". Kan dat niet, of doe ik nog wat anders verkeerd?
Gewijzigd op 28/08/2017 14:14:39 door G Jansma
 
PHP hulp

PHP hulp

25/12/2024 07:52:23
 
- Ariën  -
Beheerder

- Ariën -

28/08/2017 14:11:02
Quote Anchor link
Meerdere mensen hebben hier een vraag. Zou je daarom een duidelijkere titel aan het topic kunnen hangen?

Alvast bedankt!
Gewijzigd op 28/08/2017 15:04:25 door - Ariën -
 
Ben van Velzen

Ben van Velzen

28/08/2017 14:37:56
Quote Anchor link
Het is geheel afhankelijk van hoe je hoster zijn zaken inricht. Als externe verbindingen niet worden toegestaan zul je vanaf een andere server niet kunnen verbinden. Soms worden uitgaande verbindingen ook actief geweigerd. Dat is iets om vooraf te controleren dus.
 
Adoptive Solution

Adoptive Solution

28/08/2017 14:45:46
Quote Anchor link
Aangenomen host/database A en host/database B.

Controleer of database A extern benaderd mag worden. Meestal een instelling in een configuratiescherm.

Of er moet in database A een gebruiker aangemaakt worden met als server/host het IP nummer of domeinnaam van host B.

Vanaf host B maakt je dan een mysql connect met die gebruiker naar host/database A.

Een andere oplossing is om in database B een Federated table naar Host A te maken.

https://dev.mysql.com/doc/refman/5.5/en/federated-create-connection.html

Op host B maak je een local connect naar database B en vraag je daar de data op.

MySQL van database B maakt dan een verbinding met database A en haalt daar de data op en toont die op host B alsof het lokaal was opgevraagd.

Oefen.
 
- Ariën  -
Beheerder

- Ariën -

28/08/2017 15:07:06
Quote Anchor link
Het is inderdaad de vraag of poort 3306 zowel uitgaand op jouw server, als op de andere server inkomend open staat. Dan is het ook een kwestie dat het IP-adres ook toegestaan is in de allowed-lijst van MySQL.

Bij de meeste hostingproviders is poort 3306 vanwege de veiligheid gesloten, maar zelf raad ik een verbinding met een database op een extern netwerk niet aan. Als die traag reageert, dan staat de browser van je bezoeker ook reactie te wachten.
 
G Jansma

G Jansma

28/08/2017 15:11:09
Quote Anchor link
@Adoptive Solution: Ik zou dus in DirectAdmin van A het IP nummer van B moeten toevoegen bij Access Hosts? Daar staan nu twee IP nummers en localhost.
Gewijzigd op 28/08/2017 15:14:25 door G Jansma
 
- Ariën  -
Beheerder

- Ariën -

28/08/2017 15:19:23
Quote Anchor link
Klopt ja, het gaat er dan wel om dat A de master is. Dus server B kan dan, als alle firewallregels goed zijn ingesteld, verbinding maken met server A.
 
G Jansma

G Jansma

28/08/2017 16:05:15
Quote Anchor link
Handig dat ik weet dat ik op poort 3306 moet zoeken, had er nog nooit van gehoord. Na wat speurwerk op de sites van de hosting gevonden dat het openstaat en hoe het moet. Nou heb ik B > A voor elkaar, maar A > B wil maar niet lukken. Krijg nog steeds de melding 'No route to host'.
 
Ben van Velzen

Ben van Velzen

28/08/2017 16:17:56
Quote Anchor link
Dus dan wordt de routering niet toegelaten vanaf A, of geweigerd op B. Even contact opnemen met de hosters dus.
 
- Ariën  -
Beheerder

- Ariën -

28/08/2017 16:19:05
Quote Anchor link
Wat voor hostname gebruik je? Of gebruik je een IP-adres?
 
G Jansma

G Jansma

28/08/2017 16:31:33
Quote Anchor link
A: (Versio - Directadmin)
10.3.0.176 (stond er al, gebruik ik met aanroepen Mysql/PHP)
127.0.0.1 (stond er al)
localhost (stond er al)
185.56.145.137 > (toegevoegd B)
www83.totaalholding.nl > (toegevoegd B)

B: (Neostrada - cPanel)
185.56.145.137 (stond er al, gebruik ik met aanroepen Mysql/PHP)
vserver89.axc.nl > (toegevoegd A)

Maar zonder dat ik iets had toegevoegd bij A gaf website B ook al 'No route to host' aan.
 
- Ariën  -
Beheerder

- Ariën -

28/08/2017 16:37:12
Quote Anchor link
Zoals Ben zegt, neem contact op met beide hostingpartijen. Ergens zit een blokkade.
 
G Jansma

G Jansma

28/08/2017 16:41:39
Quote Anchor link
Ik heb nu wel iets gevonden waarbij A > B wel werkt. Ik had namelijk het volgende al gevonden.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$ip
= gethostbyname('vserver89.axc.nl');
echo $ip;
?>


Als ik dat doe komt er 185.182.56.229 uit. Als ik dat vervolgens in mijn config stop werkt het wel op B.

$con = mysqli_connect("185.182.56.229","user","password","table");

Alleen werkt het dan op A zelf niet als ik dat IP gebruik.
 
Ben van Velzen

Ben van Velzen

28/08/2017 16:44:34
Quote Anchor link
op A gebruik je gewoon localhost, al is het alleen maar zodat hij dan de unix socket pakt, en deze is sneller.
 
- Ariën  -
Beheerder

- Ariën -

28/08/2017 16:47:03
Quote Anchor link
localhost = 'eigen server', dus het is onnodig om een externe of interne IP (buiten 127.0.0.1) te gebruiken.

Als je wilt kijken of je raam van je kamer open is, dan ga je toch ook niet naar buiten om dat uit te zoeken, om vervolgens weer naar binnen te gaan? ;-)
 
G Jansma

G Jansma

28/08/2017 16:53:15
Quote Anchor link
Ik snap dat het logisch is om gewoon localhost te gebruiken bij de database van A en B zelf.

Maar B > A werkt dus wel op zowel B als A met hetzelfde IP in de config. Maar A > B dus kennelijk niet, dat vind ik dan merkwaardig.
 
Ben van Velzen

Ben van Velzen

28/08/2017 17:12:38
Quote Anchor link
Dat ligt aan de serverconfiguratie. Ik laat mysql ook niet op de lokale interfaces luisteren, omdat daar al een prima bruikbare unix socket staat. Het kan op verschillende niveaus worden dichtgezet, als je server bijvoorbeeld achter een 1:1 NAT zit heeft het gebruikte IP geen enkele relatie tot het gebruikte IP. Vanaf de binnenzijde is dit IP vaak onbereikbaar. Maar dit is een kwestie van opvragen wat de IP's aan de interfaces (eth0) zijn, of even navragen bij de hoster.
 
G Jansma

G Jansma

28/08/2017 18:33:37
Quote Anchor link
Ok, weer een hoop wijzer geworden. Was dus toch niet zo'n domme vraag. Bedankt!
 
- Ariën  -
Beheerder

- Ariën -

28/08/2017 18:54:11
Quote Anchor link
Domme vragen bestaan niet... ;-)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.