Robert: mysql: Can't connect to local MySQL server through ...

Hi,
ich bekomme bei unten stehendem Code die Fehlermeldung 2002: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

Ist da irgendwas falsch drin, wenn ja was?

Eingendlich habe ich den Code aus einem anderen Script von mir herauskopiert, da läuft er problemlos.

Etwas ratlose Grüße

Robert
-------------------------------------------------------------
 $db=mysql_connect($dbserver,$dbuser,$dbpasswd);
 mysql_select_db($dbname,$db);

$sql = "SELECT COUNT(*) AS Anzahl from "."$prefix"."users$where";
 //echo $sql;
 $query1 = mysql_query($sql);
 $result1 = mysql_fetch_array($query1);
  if ($result1==FALSE) {
   die(mysql_error());
  }

$Anzahl_rows = $result1['Anzahl'];
---------------------------------------------------

  1. Hallo,

    Kannst Du eine Verbindung an der Kommandozeile herstellen?

    Dieter

    1. Hi Dieter,

      ich kann überhaupt nur über http verbinden :-(
      Ist aber egal, weil im gleichen Script nnoch eine weitere Abfrage ist, die problemlos läuft, sobald ich die "fehlerhafte" rausnehme.

      Also am Server liegts sicher nicht.

      Ich hatte irgendwann zuletzt schonmal dasselbe Problem, hatte dann die damilige Abfrage umgestrickt (da bei der mehrere Wege zum gleichen Ziel führten) und schon liefs.

      Grüße

      Robert

      Hallo,

      Kannst Du eine Verbindung an der Kommandozeile herstellen?

      Dieter

      1. Hallo,

        Ist aber egal, weil im gleichen Script nnoch eine weitere Abfrage ist, die problemlos läuft, sobald ich die "fehlerhafte" rausnehme.

        Wenn Du ohnehin schon eine Connection hast, warum machst Du noch eine neue?
        Sinnvoll waere es m.E. du wuerdest eine Datei nach folgendem Muster auslagern:

        <?php
        $db_host = "...";
        $db_name = "...";
        $db_user = "...";
        $db_pass = "...";

        function sql_error()
        {
          print '<p>MySQL Error ' . mysql_errno() . ': ' . mysql_error() . '</p>';
        }

        mysql_connect($db_host,$db_user,$db_pass)or die ("Verbindung zum Server nicht möglich.");

        mysql_select_db ($db_name)or die ("Verbindung zur Datenbank nicht möglich.");
        ?>

        Diese Datei bindest du mir require_once in jede betroffene Datei ein.

        Deine Abfragen kannst Du dann mit
        mysql_query (...) or sql_error()
        machen und erhaelst immer eine feine MySQL-Fehlermeldung, wenn was schiefgeht.
        Allerdings musst Du darauf achten, dass du nach Abschluss der Entwicklung das 'print' aus der Funktion sql_error() auskommentierst.

        Reine MySQL-Loesungen sind dann gut, wenn Du weisst, dass die Seite immer auf MySQL laufen wird. Bei einer Anwendung fuer ein Intranet, wo die Datenbank vielleicht nicht immer festzulegen ist, bist Du mit ADOdb http://php.weblogs.com/ADOdb oder der PEAR-DB-Klasse http://www.pear.php.net besser bedient. Auch mit Hinblick auf SQLite ist das sicher erwaegenswert. Wenn Deine Seite bei Puretec laeuft, wird es bis zur Einfuehrung von SQLite wohl noch eine ganze Zeit dauern, andere Hoster sind da etwas flinker mit ihren Updates.

        Dieter

  2. guten morgen,

    $query1 = mysql_query($sql);

    versuch mal $query1 = mysql_query($sql, $db);

    Ilja

    1. Hi Ilja,

      danke für den Tip. Habs versucht, aber das Ergebnis bleibt unverändert :-(

      Gruß

      Robert

      guten morgen,

      $query1 = mysql_query($sql);

      versuch mal $query1 = mysql_query($sql, $db);

      Ilja

      1. sind den die variablen bei dem connect auch richtig gesetzt, wie server, user und password ?

        $db=mysql_connect($dbserver,$dbuser,$dbpasswd);

        versuch mal eine kleine abfrage, ob dieser connect geklappt hat. dann weißt du wenigstens in welcher zeile der fehler liegt.

        if ($db)
           echo "Datenbankverbindung hergestellt";
        else
           echo "Datenbankverbindung konnte nicht hergestellt werden";

        viele arbeiten auch mit der die funktion wie:

        $db=mysql_connect($dbserver,$dbuser,$dbpasswd) OR die ("Datenbankverbindung konnte nicht hergestellt werden");

        eine überprüfung der connection solltest du immer ddabei haben. falls der connect fehl schlägt, musst den den fehler abfangen und behandeln. such dir eine der beiden möglichkeiten aus.

        Ilja

  3. Hi Ilja und Dieter,

    Ihr habt mich auf des Rätsels Lösung gebracht, $server sollte $host heißen und gut wars...
    Sorry, daß ich Euch für so einen Sch.... bemühen mußte und danke für Eure Antworten, weil ich daraus lernen konnte, wie mir so etwas zukünftig nicht mehr passieren muß :-)

    gruß

    Robert