Hola,
creo que para crear una llave foranea, mysql primero require que el campo que va a ser clave ajena sea un indice, por ello, si no lo has hecho, crea un indice sobre ese campo y despues crea la llave foranea, ok?
espero haberte sido de ayuda.
un saludo.