Protože řádek 3 obsahuje první ;
možná máte problém s oddělovači.
Viz http://dev.mysql.com/ doc/refman/5.0/en/stored-programs-defining.html
DELIMITER //
CREATE PROCEDURE dorepeat(p1 INT)
BEGIN
SET @x = 0;
REPEAT SET @x = @x + 1; UNTIL @x > p1 END REPEAT;
END//
DELIMITER ;