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.