Schrift
[thread]3506[/thread]

postgresql socket



<< |< 1 2 >| >> 14 Einträge, 2 Seiten
sri
 2004-08-16 01:20
#32631 #32631
User since
2004-01-29
828 Artikel
BenutzerIn
[Homepage] [default_avatar]
Nein, das geht nicht "irgendwie über sockets".
Sockets sind die unterste Ebene einer Session orientierten Verbindung.
Alle Datenbanken setzen mit ihrem eigenen Protokoll darauf auf.

DBI ist genau das was du willst.
Schau dir die Dokumentation lieber noch einmal genauer an.
Tobias Heise
 2004-08-29 18:31
#32632 #32632
User since
2004-07-05
13 Artikel
BenutzerIn
[Homepage] [default_avatar]
Toll, aber wieso funktioniert dann seitdem die Verbindung nicht mehr?? Der Server beendet entweder die Verbindung oder meint das die Datenbank nicht vorhanden ist! Was soll man denn da machen? Ich mache das ja schon mit DBI!
Dubu
 2004-08-29 20:49
#32633 #32633
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
(verschoben ins Datenbanken-Forum)
Tobias Heise
 2004-08-15 13:30
#32634 #32634
User since
2004-07-05
13 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hallo!

Ich möchte mit Perl eine Postgresql Verbindung über Socket aufbauen. Ich weiß nur dummerweise überhaupt nicht wie.
In PHP scheint das irgendwie ohne Probleme zu funktionieren aber nicht in Perl.

Ich hab das so probiert:

Code: (dl )
1
2
3
4
5
#!/usr/bin/perl
use Pg;

$conn = Pg::connectdb("dbname=url") or print "error";
$res  = $conn->exec("SELECT * ") or print "error";


Nun sagt der mir aber das die Datenbank nicht vorhanden ist, obwohl das nicht sein kann.

Hat jemand einen Rat?

Gruß:

Tobias
Tobias Heise
 2004-08-16 01:06
#32635 #32635
User since
2004-07-05
13 Artikel
BenutzerIn
[Homepage] [default_avatar]
HI!

Nein, das funktioniert leider auch nicht!

Quote
could not connect to server: No such file or directory at ./fltest.pl line 3
could not connect to server: No such file or directory at

Die Sache ist ja die das das irgednwie über Sockets gehen muss.
In PHP geht das wohl irgendwie so:

Code: (dl )
$connection_body = pg_pconnect("host=localhost dbname=url user=username");


Das müsste ja unter perl auch so ähnlich funktionieren.
Strat
 2004-08-16 02:04
#32636 #32636
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
mit Pg kann ich dir nicht helfen.... mit DBI wuerde der connect in etwa folgendermaszen aussehen:
Code: (dl )
1
2
my $dbh = DBI->connect("dbi:Pg:dbname=$dbname;host=$host;port=$port;" .
"options=$options", $username, $password);

siehe auch CPAN: DBD::PG
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
sri
 2004-08-29 17:39
#32637 #32637
User since
2004-01-29
828 Artikel
BenutzerIn
[Homepage] [default_avatar]
[quote=Tobias Heise,29.08.2004, 08:23]Hallo, hab mich jetzt nocheinmal genauer informiert. Seit dem die Verbindungsart der Postgresql Datenbank von TCP/IP auf Sockets geändert wurde, funktioniert mein Script nicht mehr. Muss ich irgendwas zusätzlich in mein Script einbauen, damit die Verbindung funktioniert?[/quote]
Da hast du was missvertsanden, Sockets sind TCP/IP! ;)
Bei PostgreSQL wurde das darauf aufsetzende Protokoll vor kurzem zu einem komplizierteren binär Protokoll geändert.
Nimm einfach DBI!\n\n

<!--EDIT|sri|1093786802-->
Tobias Heise
 2004-08-29 18:35
#32638 #32638
User since
2004-07-05
13 Artikel
BenutzerIn
[Homepage] [default_avatar]
Ach nochwas:
Was soll denn dann eigentlich diese Option in der Postgresql configuration file


tcpip_socket = false

??
jan10001
 2004-08-29 18:55
#32639 #32639
User since
2003-08-14
962 Artikel
BenutzerIn
[default_avatar]
#Verbindungsparameter: TCP akzeptieren
tcpip_socket = true

Mit dieser Einstellung läuft der nur als localhost.
tcpip_socket = false
Dubu
 2004-08-29 20:03
#32640 #32640
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
[quote=sri,29.08.2004, 15:39]Da hast du was missvertsanden, Sockets sind TCP/IP! ;)[/quote]
Es gibt INET-Sockets (TCP oder UDP) und es gibt UNIX-Sockets (lokale Prozesskommunikation).

Ich weiss aber nicht, wie man DBI bzw. DBD::Pg sagt, dass man UNIX-Domain-Sockets benutzen moechte statt TCP/IP; die Doku von DBD::Pg verstehe ich so, dass nur dann TCP/IP genommen wird, wenn ein Host angegeben ist, d.h. es muesste reichen, den Host-Eintrag ("...;host=localhost;...") wegzulassen ...
<< |< 1 2 >| >> 14 Einträge, 2 Seiten



View all threads created 2004-08-16 01:20.