Che motore hai impostato per le tabelle?
MySQL di default utilizza MyISAM, che però non supporta le chiavi esterne.
Per avere il supporto delle chiavi esterne su MySQL devi quindi utilizzare InnoDB.