Problemas na stored procedure

criei a seguinte SP

DELIMITER $$

DROP PROCEDURE IF EXISTS `criabd` $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `criabd`(ra char(9), senha char(10), turma char(10))
BEGIN

set @ra := ra;
set @senha := senha;
set @turma := turma;


set @bd := concat(@turma, @ra);
set @criaBanco := concat('CREATE DATABASE ', @bd,';');
set @criaUser := concat('grant all on ', @bd, '.* to "', @ra, '"@"%" identified by "', @senha, '";');

prepare stmt from @criabanco;
execute stmt;
prepare stmt from @criaUser;
execute stmt;

INSERT INTO tbcadastrados VALUES (@ra, @turma, @bd, @senha);

END $$

DELIMITER ;

porém ela está gerando um erro, mas não consegui achar qual…
se alguém puder me ajudar
grato!