The 30-year-old, who can also play in midfield, has joined on a free transfer after his Lions contract expired.
"I'm delighted to have signed," he told the Shrews website.
"The move had been in the mix for a little while but there was a lot for me to contemplate, obviously moving from London, but it's the right decision for me and my wife and we've got a child on the way.
"I'm very much looking forward to moving to the area and playing for Shrewsbury."
Mkandawire is the third defender to join Shrewsbury this summer following Alex McQuade and Dave Winfield.
The club have been further boosted by the news that Jon Taylor and Connor Goldson have signed new two-year contracts.