Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Es kann keine Verbindung zum lokalen MySQL-Server über Socket hergestellt werden

Da der Fehler durch den Aufruf von mysql_real_escape_string() ausgelöst wird es impliziert vielmehr, dass Sie mysql_connect() nicht aufgerufen haben zuerst und übergeben Sie ein gültiges DB-Handle an mysql_real_escape_string (oder der Aufruf von mysql_connect() fehlgeschlagen).

Unter bestimmten Umständen versucht die mysql-Erweiterung, sich automatisch mit den Standardeinstellungen in php.ini zu verbinden, und wechselt zu my.cnf, wenn diese nicht verfügbar sind – was offensichtlich nicht gültig ist. Oder es kann sein, dass die Einstellungen gültig sind, aber mysqld nicht läuft.

Haben Sie Skripte, die sich erfolgreich mit der Datenbank verbinden?

Haben Sie einen Benutzernamen und ein Passwort für die Datenbank?

Versuchen Sie:

check_running();

$user=''; // fill in your details
$password=''; // fill in your details

$hosts=array(
  'localhost', '127.0.0.1', $_SERVER['HTTP_HOST'], $_SERVER['SERVER_ADDR']
);
foreach ($hosts as $addr) {
   try_con($addr, $user, $password);
   try_con($addr . ':3306', $user, $password);
}

function try_con($host, $user, $password)
{
 $dbh=mysql_connect($host, $user, $password);
 if ($dbh) {
     print "Connected OK with $host, $user, $password<br />\n";
 } else {
     print "Failed with $host, $user, $password<br />\n";
 }
}

function check_running()
{
   // this assumes that you are using Apache on a Unix/Linux box
   $chk=`ps -ef | grep httpd | grep -v grep`;
   if ($chk) {
      print "Checking for mysqld process: " . `ps -ef | grep mysqld | grep -v grep` . "<br />\n";
   } else {
       print "Cannot check mysqld process<br />\n";
   }
 }