Willkommen Gast. Bitte einloggen oder registrieren.
Haben Sie Ihre Aktivierungs E-Mail übersehen?

Einloggen mit Benutzername, Passwort und Sitzungslänge

 
Erweiterte Suche

5445 Beiträge in 1183 Themen- von 615 Mitglieder - Neuestes Mitglied: umzugi

23.05.2013 04:46
ProfiHost - SupportforumTechnikProgrammiersprachenDatenbankverbindung schlägt unter SSH fehl
Seiten: [1]   Nach unten
Drucken
Autor Thema: Datenbankverbindung schlägt unter SSH fehl  (Gelesen 6520 mal)
boexttnl
Newbie
*
Offline Offline

Beiträge: 3


Profil anzeigen
« am: 25.12.2009 01:00 »

Hallo.

Ich versuche gerade testweise ein Skript in Perl zu schreiben das eine Datenbankverbindung aufbauen soll (auf einem anderen Space lief es).

Nun bekomm ich hier folgenden Fehler:

Zitat
DBI connect('database=xxxxx;host=localhost','xxxxx',...) failed: Access denied for user 'xxxxx'@'localhost' (using password: YES) at import.pl line 21

für die xxxxx hab ich natürlich die richtigen Werte drin.

Das Script sieht so aus:

Code:
#!/usr/bin/perl -w

################
# Header
################

# Einstellungen und Module
use strict;
use DBI;

# Konstanten
my $database = "xxxxx";
my $hostname = "localhost";
my $user = "xxxxx";
my $pass = "xxxxx";

my $time = time();

# Verbinden zur Datenbank öffnen
my $dsn  = "DBI:mysql:database=$database;host=$hostname";
my $dbh = DBI::->connect( $dsn, $user, $pass, { 'RaiseError' => 1, 'AutoCommit' => 1 } ) or die DBI::errstr;



# Verbindung zur Datenbank schließen
$dbh->disconnect;

Gruß
Michael
Gespeichert
Michael
Full Member
***
Offline Offline

Beiträge: 171


Profil anzeigen WWW
« Antworten #1 am: 27.12.2009 11:40 »

Hallo Michael,

ich sehe keinen Fehler im Skript. Da Du im Betreff schreibst, daß die Ausführung in einer SSH-Session fehlschlägt: Klappt's den als CGI?
Falls nicht, solltest Du nochmals DB-User/Passwort aus Servercon kopieren und ins Skript einfügen.

Ansonsten bleibt wohl nur noch Mail an den PH-Support.

Gruß
Michael
Gespeichert

Inlinestrecken im Rheinland ... und anderswo
http://www.inlinestrecken.de
Inlinestrecken-Such-Katalog
http://suche.inlinestrecken.de
boexttnl
Newbie
*
Offline Offline

Beiträge: 3


Profil anzeigen
« Antworten #2 am: 27.12.2009 15:09 »

Hallo.

Danke für die Antwort.

Was genau meinst du mit CGI ? Bin da noch etwas unbeholfen, ich weiß wie ich eine Perl-Datei erstelle und unter SSH aufrufe, ansonsten kenn ich mich eher mit PHP aus.

Unter PHP funktioniert der Zugriff auf die Datenbank auch ganz normal.

Ich weiß das ich keinen externen Zugriff auf die DB habe, hat es vielleicht damit was zu tun ? Wobei ich ja unter SSH auch auf localhost zugreife von daher denke ich das es da nicht dran liegen sollte.

Gruß
Michael
Gespeichert
Michael
Full Member
***
Offline Offline

Beiträge: 171


Profil anzeigen WWW
« Antworten #3 am: 27.12.2009 20:06 »

Was genau meinst du mit CGI ? Bin da noch etwas unbeholfen, ich weiß wie ich eine Perl-Datei erstelle und unter SSH aufrufe, ansonsten kenn ich mich eher mit PHP aus.
Aufruf als Webseite.
Du solltest Dein Skript (zum Testen) mit folgender Zeile ergänzen, damit die Fehler direkt ausgegeben werden (stehen sonst nur im Error-Log)
Code:
use CGI::Carp "fatalsToBrowser";

Ich weiß das ich keinen externen Zugriff auf die DB habe, hat es vielleicht damit was zu tun ? Wobei ich ja unter SSH auch auf localhost zugreife von daher denke ich das es da nicht dran liegen sollte.
Eigentlich sollte das per SSH auf dem Server, auf dem Dein Webspace und somit auch die Datenbank liegen, mit localhost funktionieren. Aber wie gesagt, probier's mal als Webseite und prüfe nochmals User und Passwort. Ansonsten schreib halt mal an den PH Support.

Gruß
Michael
Gespeichert

Inlinestrecken im Rheinland ... und anderswo
http://www.inlinestrecken.de
Inlinestrecken-Such-Katalog
http://suche.inlinestrecken.de
ProfiHost - Technik
Administrator
Hero Member
*****
Offline Offline

Beiträge: 1708


Profil anzeigen
« Antworten #4 am: 28.12.2009 08:46 »

Je nachdem welche mySQL Version Sie einsetzen, ist für "localhost" folgendes einzusetzen:


mySQL 4 : 127.0.0.1:3306

oder

mySQL 5 : 127.0.0.1:3307

Bitte testen Sie es damit und geben Sie uns dazu eine kurze Rückmeldung.

Alternativ schreiben Sie uns eine EMail an support@porfihost.com und teilen uns dort den Pfad zum entsprechenden Skript mit.
Gespeichert

Mit freundlichen Grüßen
Ihr ProfiHost Team
boexttnl
Newbie
*
Offline Offline

Beiträge: 3


Profil anzeigen
« Antworten #5 am: 28.12.2009 23:29 »

Danke, mit den IP's geht es wunderbar  Grinsend

Gruß
Micha
Gespeichert
Michael
Full Member
***
Offline Offline

Beiträge: 171


Profil anzeigen WWW
« Antworten #6 am: 29.12.2009 23:16 »

Hallo PH Support,
Je nachdem welche mySQL Version Sie einsetzen, ist für "localhost" folgendes einzusetzen:

mySQL 4 : 127.0.0.1:3306
...

eine ähnliche Information habe ich vor Monaten auch schon mal bekommen, als nach einem Serverwechsel PHPMyAdmin nicht mehr auf die DB zugreifen konnte. PHPMyAdmin lief damit dann auch wieder, was ich allerdings primär auf die explizite Angabe des Ports und ggf. Besonderheiten von PHPMyAdmin bzw. PHP im allgemeinen geschoben habe.

Meine zahlreichen Perl-Skripte laufen auch heute noch mit localhost und ohne explizite Port-Angabe.
Nun habe ich in der Doku zu DBD::mysql gelesen, daß in der Tat bei einer Verbindung per TCP statt localhost die aufgelöste Loopback-Adresse 127.0.0.1 angegeben werden muß. Ergo nutzen meine Perl-Skripte wohl UNIX-Sockets.

Gibt es Unterschiede bzgl. der Verfügbarkeit von UNIX-Sockets auf den verschiedenen PH-Servern (MySQL unterschiedlich kompiliert)? Oer gibt es diesbzgl. Unterschiede zwischen Zugriffen per SSH und CGI?

Gruß
Michael
Gespeichert

Inlinestrecken im Rheinland ... und anderswo
http://www.inlinestrecken.de
Inlinestrecken-Such-Katalog
http://suche.inlinestrecken.de
ProfiHost - Technik
Administrator
Hero Member
*****
Offline Offline

Beiträge: 1708


Profil anzeigen
« Antworten #7 am: 05.01.2010 13:16 »

Zitat
Gibt es Unterschiede bzgl. der Verfügbarkeit von UNIX-Sockets auf den verschiedenen PH-Servern (MySQL unterschiedlich kompiliert)?

Nein, hier gibt es keine Unterschiede.

Zitat
Oder gibt es diesbzgl. Unterschiede zwischen Zugriffen per SSH und CGI?

Auch hier gibt es keinen Unterschied.

Bitte erläutern Sie Ihre Frage oder Ihr Problem genauer.

Am Besten per EMail an support@profihost.com .
Gespeichert

Mit freundlichen Grüßen
Ihr ProfiHost Team
Michael
Full Member
***
Offline Offline

Beiträge: 171


Profil anzeigen WWW
« Antworten #8 am: 05.01.2010 22:56 »

Bitte erläutern Sie Ihre Frage oder Ihr Problem genauer.
Ich habe (noch) kein Problem. Mich wundert halt nur, daß

- beim User XXX der DB-Zugriff im Perl-DBI-Modul
   - mit localhost (somit über UNIX-Sockets) nicht funktioniert
   - mit 127.0.0.1:3306 (also Port-Verbindung) aber funktioniert

- bei meinen Perl-Skripten mit DBI-Modul
   - der Zugriff mit localhost ohne Port (also wieder UNIX-Sockets) jedoch funktioniert.
- bei meinem PHPMyAdmin jedoch auch 127.0.0.1:3306 eingetragen sein muß (das mag aber an PHP liegen)

Admin-Edit: Benutzername entfernt.
« Letzte Änderung: 06.01.2010 13:40 von ProfiHost - Technik » Gespeichert

Inlinestrecken im Rheinland ... und anderswo
http://www.inlinestrecken.de
Inlinestrecken-Such-Katalog
http://suche.inlinestrecken.de
ProfiHost - Technik
Administrator
Hero Member
*****
Offline Offline

Beiträge: 1708


Profil anzeigen
« Antworten #9 am: 06.01.2010 13:39 »

Dies hängt damit zusammen, dass hier einmal MySQL4 und einmal MySQL5 verwendet wird. Mit der einheitlichen Angabe von IP und Port können Sie diese Probleme aber umschiffen.
Gespeichert

Mit freundlichen Grüßen
Ihr ProfiHost Team
Michael
Full Member
***
Offline Offline

Beiträge: 171


Profil anzeigen WWW
« Antworten #10 am: 06.01.2010 22:57 »

Dies hängt damit zusammen, dass hier einmal MySQL4 und einmal MySQL5 verwendet wird.
Worauf bezieht sich jetzt das "hier"? Ich habe zumindest nur MySQL4 im Einsatz, sowohl beim Zugriff per Perl als auch PHPMyAdmin. Genau genommen geht's um die identischen Datenbanken.

Oder geht's einerseits um meine MySQL4 DBs und andererseits MySQL5 DBs des Users, dessen Namen ich offenbar nicht nennen darf (s. Editierung meines vorherigen Posts), obwohl er diesen Thread eröffnet hat?
Gespeichert

Inlinestrecken im Rheinland ... und anderswo
http://www.inlinestrecken.de
Inlinestrecken-Such-Katalog
http://suche.inlinestrecken.de
ProfiHost - Technik
Administrator
Hero Member
*****
Offline Offline

Beiträge: 1708


Profil anzeigen
« Antworten #11 am: 07.01.2010 09:07 »

Das "hier" bezieht sich auf unsere Systeme.

Hier sind mySQL 4 und mySQL 5 paralell im Einsatz.


Alle Ihre Fragen sind bereits mit dem Post vom 28.12.2009, 08:46 Uhr beantwortet.

Weiteren Fragen senden Sie uns bitte per EMail mit konkreter Fehlerbeschreibung an support@profihost.com

Vielen Dank!


Gespeichert

Mit freundlichen Grüßen
Ihr ProfiHost Team
Seiten: [1]   Nach oben
Drucken
Gehe zu: