Do you have any data in this table? If not I would drop it and re-create. Make sure to check what character set you are using and what engine.
DROP TABLE `api_key`;
CREATE TABLE `api_key` (
`API_KEY` varchar(255) DEFAULT NULL,
`APP_DESCRIPTION` varchar(80) DEFAULT NULL,
`ID` int(10) NOT NULL,
`SUBSCRIBER_ID` int(10) DEFAULT NULL,
PRIMARY KEY (`ID`),
KEY `SUBSCRIBER_ID` (`SUBSCRIBER_ID`),
KEY `API_KEY` (`API_KEY`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
ALTER TABLE `api_key`
ADD CONSTRAINT `API_KEY_subscriber_FK` FOREIGN KEY (`SUBSCRIBER_ID`) REFERENCES `subscriber` (`ID`);
I ran into this last night. We are testing this out in a new test environment. I had to add this setting to my "my.cnf" file on the Database Server. Turns out WHD was looking for whd.API_KEY while my DB it was whd.api_key. The below setting and reference page for MySQL should help you out.
I set that by default on any of MySQL box I have. Why? Because folks tend to name tables (not only in WHD case) as they pleased and make so much mess with that. So follow my example and make it your habit if you manage *nix boxes (has no impact on Win)