[MySQL] Kan niet extern verbinden met PDO.
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)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Dit geeft mij het volgende resultaat.
Code (php)
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
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
}
["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)
1
2
3
4
5
6
7
8
9
10
11
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 />';
}
?>
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)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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>
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
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.
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.
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.
Het IP-adres zal altijd wel werken.
Probeer die eens.
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.
Dan is er wellicht wat verkeerd ingesteld bij de dns o.i.d.