This is a pretty common issue due to how MySQL treats the auto-index values sometimes on imports from DB dump. Basically new store/website IDs have been created that do not match with other data.
Something like this would do the trick, remember to disable foreign key checks before and after the query, and to make sure the IDs match up with your existing data.
/* Reset core site/website */
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
INSERT INTO `core_store` VALUES (0, 'admin', 0, 0, 'Admin', 0, 1);
INSERT INTO `core_store` VALUES (1, 'default', 1, 1, 'Default Store View', 0, 1);
INSERT INTO `core_store_group` VALUES (0, 0, 'Default', 0, 0);
INSERT INTO `core_store_group` VALUES (1, 1, 'Main Website Store', 2, 1);
INSERT INTO `core_website` VALUES (0, 'admin', 'Admin', 0, 0, 0, 0, '', '', '');
INSERT INTO `core_website` VALUES (1, 'base', 'Main Website', 0, 1, 1, 0, '', '', '');
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
More details:
You could also disable this MySQL configuration and re-import your data again also.