Ошибка MySQL: Can’t create table ‘tablename’ (errno: 150) может возникать когда вы например заливаете бэкап и MySQL питается создать таблицу 1 которая ссылается на таблицу 2, которой по сути еще нету. Решить можно вставив в бэкап строки в начале:
SET FOREIGN_KEY_CHECKS = 0;
И в самом конце
SET FOREIGN_KEY_CHECKS = 1;
Смотрите прочие мои статьи на тему MySQL