Estás dejando una parte del código fuera del cuerpo del trigger, colocando un campo que no estás ingresando y además poniendo un caracter cuya utilidad yo no conozco en MySQL (":").
El cuerpo del trigger (como el de los SP o las funciones), se encierra en un conjunto delimitador por BEGIN/END, los cuales no pueden anidarse NUNCA.
El código quedaría mas o menos así (sólo para consola, si usas otra cosa debes decirlo):
Código sql:
Ver originalDELIMITER $$
FROP TRIGGER IF EXISTS prueba$$
CREATE TRIGGER prueba BEFORE UPDATE ON td_persona
FOR EACH ROW
BEGIN
DECLARE maximo INT(11);
SET maximo =(SELECT MAX(audi_id) FROM ts_auditoria);
IF (OLD.pers_rut <> NEW.pers_rut) THEN
INSERT INTO ts_auditoria(audi_id,audi_ip,audi_fecha,audi_tabla ,audi_campo, audi_valor_anterior, audi_valor_actual)
VALUES(maximo,'255.255.255.0',(DATE_FORMAT(now(),' %Y/%m/%d')),NULL,'pers_rut', OLD.pers_rut,NEW.pers_rut);
END IF;
END$$
DELIMITER ;