Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Não é possível conectar ao servidor MySQL local através do soquete


Como o erro está sendo lançado pela chamada para mysql_real_escape_string() isso implica que você não chamou mysql_connect() primeiro e passe um identificador de banco de dados válido para mysql_real_escape_string (ou a chamada para mysql_connect() fracassado).

Em algumas circunstâncias, a extensão mysql tentará se conectar automaticamente usando as configurações padrão no php.ini, fazendo failover para my.cnf se estas não estiverem disponíveis - o que obviamente não é válido. Ou pode ser que as configurações sejam válidas mas o mysqld não esteja rodando.

Você tem scripts que estão se conectando ao banco de dados com sucesso?

Você tem um nome de usuário e senha para o banco de dados?

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