[MySQL] Kan niet extern verbinden met PDO.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jurgen Meijer

Jurgen Meijer

27/07/2010 11:04:27
Quote Anchor link
PHP'ers,

Ik heb een vreemd probleem met PHP PDO. Ik gebruik 2 connecties, 1 lokaal en 1 extern. Daarvoor gebruik ik 2 verschillende PDO instanties. Alleen kan ik niet naar buiten verbinden.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php

    try{
        $data = new PDO('mysql:host=....nl;dbname=shop', '...', '....');
        $stmt = $data->prepare('SELECT id FROM customers LIMIT 10');
        $stmt->execute();
        $result = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
        print_r($result);
    }
catch(PDOException $e){
        echo '<pre>';
        var_dump($e);
        echo '</pre>';
    }

?>


Dit geeft mij het volgende resultaat.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
object(PDOException)#29 (8) {
  ["message":protected]=>
  string(77) "SQLSTATE[HY000] [2003] Can't connect to MySQL server on '....' (110)"
  ["string":"Exception":private]=>
  string(0) ""
  ["code":protected]=>
  int(2003)
  ["file":protected]=>
  string(35) "/var/www/includes/modules/login.php"
  ["line":protected]=>
  int(4)
  ["trace":"Exception":private]=>
  array(2) {
    [0]=>
    array(6) {
      ["file"]=>
      string(35) "/var/www/includes/modules/login.php"
      ["line"]=>
      int(4)
      ["function"]=>
      string(11) "__construct"
      ["class"]=>
      string(3) "PDO"
      ["type"]=>
      string(2) "->"
      ["args"]=>
      array(3) {
        [0]=>
        string(36) "mysql:host=...;dbname=..."
        [1]=>
        string(7) "..."
        [2]=>
        string(10) "..."
      }
    }
    [1]=>
    array(4) {
      ["file"]=>
      string(18) "/var/www/index.php"
      ["line"]=>
      int(52)
      ["args"]=>
      array(1) {
        [0]=>
        string(35) "/var/www/includes/modules/login.php"
      }
      ["function"]=>
      string(12) "require_once"
    }
  }
  ["previous":"Exception":private]=>
  NULL
  ["errorInfo"]=>
  NULL
}


Als ik de normale MySQL functies los laat naar dezelfde host werkt het direct;

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
mysql_connect('...','...','...');
mysql_select_db('shop');

$query = 'SELECT id FROM customers LIMIT 10';
$result = mysql_query($query);

while($row = mysql_fetch_assoc($result)){
    echo $row['id'].'<br />';
}

?>


Lokaal verbinden werkt overigens prima, het is dus enkel mijn server i.c.m. PDO en de externe MySQL server.

via commandline kan ik er ook gewoon bij.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
jurgen@jurgen:~$ telnet [host] 3306
Trying 85.17.xxx.xxx...
Connected to [host].
Escape character is '^]'.
8
5.0.41-logXuH.P-,5e|`,M?6/(yNWKS=uConnection closed by foreign host.
jurgen@jurgen:~$ mysql -h [host] -u [username] -p
Enter password: ******
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4749147
Server version: 5.0.41-log Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

Hopelijk kunnen jullie mij helpen.
Gewijzigd op 27/07/2010 12:19:30 door Jurgen Meijer
 
PHP hulp

PHP hulp

24/12/2024 13:27:49
 
P Lekensteyn

P Lekensteyn

27/07/2010 12:08:14
Quote Anchor link
De host is nog steeds zichtbaar hoor.
Ik weet niet welke host jij met telnet probeert, maar de host die in jouw code staat (met ip 62.93.x.x) reageert niet op poort 3306.
 
Jurgen Meijer

Jurgen Meijer

27/07/2010 12:20:55
Quote Anchor link
Peter aka Lekensteyn op 27/07/2010 12:08:14:
De host is nog steeds zichtbaar hoor.
Ik weet niet welke host jij met telnet probeert, maar de host die in jouw code staat (met ip 62.93.x.x) reageert niet op poort 3306.


Nee dat is ook niet de host, die begint met 85...

Maar het komt er op neer, het werkt via commandline en via de normale mysql_* functies, maar niet met PDO, dat vind ik zelf een beetje raar.
 
P Lekensteyn

P Lekensteyn

27/07/2010 13:25:43
Quote Anchor link
Maar blijkbaar werkt die hostnaam niet.
Het IP-adres zal altijd wel werken.
Probeer die eens.
 
Jurgen Meijer

Jurgen Meijer

27/07/2010 13:31:06
Quote Anchor link
Ja, idd ik heb de hostname (die normaal wel werkt :S ) gewijzigd in het IP adres en nu werkt hij perfect. Hartelijk dank voor de informatie.
 

27/07/2010 13:39:07
Quote Anchor link
Dan is er wellicht wat verkeerd ingesteld bij de dns o.i.d.
 



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.