en lugar de poner un mensaje en el die, pone mysql_error() para ver el error y listo...
   Código PHP:
    // cambiamos el estado de activacion despues de 45 dias 
if ($activo == "1" ){
$grabar = mysql_query("UPDATE `publicaciones` SET `activar`= '0' WHERE `fecha_v` <= '$fecha'") or die(mysql_error()); 
} 
    
  Fijate.. si funciona, además le agrege las comillas que son necesarias en SQL.