Mysql
 sql >> Base de données >  >> RDS >> Mysql

Impossible de se connecter au serveur MySQL local via socket

Puisque l'erreur est générée par l'appel à mysql_real_escape_string() cela implique plutôt que vous n'avez pas appelé mysql_connect() d'abord et passez un handle de base de données valide à mysql_real_escape_string (ou l'appel à mysql_connect() échoué).

Dans certaines circonstances, l'extension mysql tentera de se connecter automatiquement en utilisant les paramètres par défaut dans php.ini, basculant vers my.cnf si ceux-ci ne sont pas disponibles - qui ne sont évidemment pas valides. Ou il se peut que les paramètres soient valides mais que mysqld ne fonctionne pas.

Avez-vous des scripts qui se connectent à la base de données avec succès ?

Avez-vous un nom d'utilisateur et un mot de passe pour la base de données ?

Essayez :

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";
   }
 }