Você esta tentando transformar idmatricula, aluno_id e curso_id em chave primária E chave estrangeira? Um campo de uma tabela não pode ser duas coisas ao mesmo tempo (Chave primária e estrangeira).
create table matricula(idmatricula int not null auto_increment,aluno_id int not null,curso_id int not null,periodo_id int,constraint pk_idmatricula primary key (idmatricula),constraint fk_aluno_id foreign key (aluno_id) references aluno(idaluno),constraint fk_curso_id foreign key(curso_id) references curso(idcurso),constraint fk_periodo_id foreign key(periodo_id) references periodo(idperiodo));
Perceba que primary key e foreign key são constraint então você precisa seguir "o ritual" de delará-la, dar um nome para ela e dizer o que ela é (exemplo: constraint pk_idmatricula primary key) Veja se dá certo, não vou nem dizer que aluno_id, curso_id e periodo_id já precisam existir senão dará erro.