Old English mihte, meahte, originally the past tense of may (Old English magen "to be able"), thus "*may-ed." See may (v.). The first record of might-have-been is from 1848.
Old English miht, earlier mæht "might, bodily strength, power, authority, ability," from Proto-Germanic *makhti- (cf. Old Norse mattr, Old Frisian, Middle Dutch, Dutch macht, Old High German maht, German Macht, Gothic mahts), Germanic suffixed form of PIE root *magh- (1) "be able, have power" (see may (v.)).