Manny: 1und1

Hallo liebe Forennutzer!

Ich suche nun seit ca. 1-2 Stunden nach einer Antwort und finde leider auch in diesem Forum keine Antwort.
Ich bekomme bei jedem SQL Ausdruck folgenden Fehler:
"Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)"

Mein Anbieter ist 1und1 und in meinem PHP Header, hab ich es vorerst (Passwort wird noch verschlüsselt, wenn es läuft ;)) so geschrieben:
$datenbank="db000000000";
$server="db000000000.db.1and1.com";
$user="dbo000000000";
$passwort="humdibum";
MYSQL_CONNECT($server, $user, $passwort) or die ("<H3>Datenbankserver nicht erreichbar</H3>");
@MYSQL_SELECT_DB($datenbank) or die ( "<H3>Datenbank nicht vorhanden</H3>");
.
.
.
MYSQL_CLOSE();

Der SQL Server läuft laut status der 1und1 Seite und ich kann dort die Datenbank auch mit PHPMyAdmin bearbeiten.

Würde mir jemand helfen? Ich finde meinen Fehler einfach nicht, selbst nicht mit Google usw. :( Vielleicht ein Tip, was ich falsch Google? Würde mir schon ausreichen!

mfg Manny

  1. Ich habe mal unter:

    www.nordicworx.de/bilder/datenbank.png

    Einen Screenshot meiner Anzeige aus MyPHPAdmin gemacht und unter:

    www.nordicworx.de/bilder/datenbank2.png

    habe ich nochmal einen Screenshot von der 1und1 Seite gemacht. Ich hoffe mir kann da jemand helfen *Kopf zerbrech*

    1. Anhand der von dir gebrachten Informationen lässt sich nun wirklich kaum feststellen was das sein könnte.

      Versuch es doch mal mit dem Support von 1&1. Angeblich reicht doch ein Anruf und alles wird sofort erledigt - obwohl - das ist nichts besonderes :: meine Kunden kennen es nicht anders ;-)

      Gruß Rainer

  2. Lieber Manny,

    $server="db000000000.db.1and1.com";

    woher hast Du diese Info? AUf meinem 1und1-Konto geht das (analog) so:

    $server="db0000.1und1.de";

    Beachte auch, dass $server eine andere "db0000" hat, als $datenbank!

    Liebe Grüße,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
  3. Moin!

    Hallo liebe Forennutzer!

    Ich suche nun seit ca. 1-2 Stunden nach einer Antwort und finde leider auch in diesem Forum keine Antwort.
    Ich bekomme bei jedem SQL Ausdruck folgenden Fehler:
    "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)"

    PHP will Mysql durch die Unix-Domain-Socket kontaktieren, und das geht schief.

    Und das ist komisch, denn deine DB-Verbindung sollte eigentlich über TCP geschehen. Also...

    Mein Anbieter ist 1und1 und in meinem PHP Header, hab ich es vorerst (Passwort wird noch verschlüsselt, wenn es läuft ;)) so geschrieben:
    $datenbank="db000000000";
    $server="db000000000.db.1and1.com";
    $user="dbo000000000";
    $passwort="humdibum";
    MYSQL_CONNECT($server, $user, $passwort) or die ("<H3>Datenbankserver nicht erreichbar</H3>");
    @MYSQL_SELECT_DB($datenbank) or die ( "<H3>Datenbank nicht vorhanden</H3>");

    ...erinnern wir uns, dass mysql_connect einen Rückgabewert mit dem Verbindungshandle hat, welcher bei jedem weiteren Aufruf einer mysql-Funktion wieder mit angegeben werden KANN. Wenn man den weglässt, wird "die erste Mysql-Verbindung" genommen. Das funktioniert dann toll, well mysql_connect() tatsächlich der erste MySQL-Befehl ist, der aufgerufen wird.

    Wenn aber ein anderer MySQL-Befehl, der eine Connection braucht, vorher aufgerufen wird, dann erstellt dieser eine MySQL-Connection mit den Standardwerten, die in PHP konfiguriert sind. Das ist gerne mal "Die Standard-Socket, mit Username 'root' und ohne Passwort".

    Die Fehlerlösung ist also einfach: Verbindungshandle von mysql_connect in eine Variable speichern und in jeder mysql-Funktion danach immer mit angeben.

    Dieser Fehler ist übrigens Ausdruck von schlampiger Programmierung. Ich möchte Wetten, dass du in deinem Skript nicht nur dieses Problem eingebaut hast, sondern auch massenhaft Sicherheitslücken aufgrund fehlender Kontextwechselbehandlung. Prophylaktisch verweise ich schon mal auf http://wiki.selfhtml.org/wiki/Artikel:Kontextwechsel.

    - Sven Rautenberg