MySQL ERROR 1005 (HY000): Can't create table

I got the following MySQL error ("1005 error") earlier today when trying to create a table with a foreign key relationship:

ERROR 1005 (HY000): 
Can't create table './mover/mover_files.frm' 
(errno: 150)

In my case this MySQL ERROR 1005 (HY000) error came from having slightly different declarations for the index of one table, which was referenced as a foreign key in my second table. When I created the index on the first table I declared it as id int unsigned auto_increment not null, and when I created the foreign key I declared it as file_source_id int not null, accidentally omitting the unsigned keyword.

I solved the problem by simply adding the unsigned keyword to my second field definition, as that's how I really want it. MySQL was right, I did have an error in my foreign key relationship, but the error message "ERROR 1005 (HY000): Can't create table" just wasn't very helpful.

A few more details

Here's a little more information on the two declarations that led to this MySQL error message ... in the first table, named file_sources, I declared my id field like this:

id int unsigned auto_increment not null

And in the table where I created the foreign key I had these two declarations:

file_source_id int not null,
constraint foreign key fk_mover_files_to_file_sources (file_source_id) references file_sources(id)

As mentioned, you'll see that I declared the auto_increment field using the unsigned keyword, but I didn't use that keyword when defining the file_source_id field. It's a subtle error, but an error nonetheless.