Den ble grunnlagt i 1784 som landsbyen Mikhajlovskoje (russisk: Миха́йловское) og ble senere en kosakk-stanitsa. I 1870 mistet den sin militære betydning og ble «degradert» til landsby igjen. I 1963 ble navnet endret til Sjpakovskoje (russisk: Шпа́ковское). Den fikk bystatus og navnet ble endret til Mikhajlovsk i 1999.