Bangladesh made one change to the team that lost the first test by eight wickets, with batsman Mushfiqur Rahim relacing Alok Kapali.
Rahim, who made his debut against England at Lord's last year, makes his first international appearance in Bangladesh in front of his home town crowd.
Sri Lanka have retained the team that won the first test in Chittagong.
Bangladesh: Habibul Bashar (captain), Khaled Mashud, Shahriar Nafees, Javed Omar, Nafees Iqbal, Mohammad Ashraful, Mushfiqur Rahim, Mohammad Rafique, Enamul Haque, Syed Rasel, Shahadat Hossain.
Sri Lanka: Mahela Jayawardene (captain), Kumar Sangakkara, Upul Tharanga, Michael Vandort, Tillakaratne Dilshan, Muttiah Muralitharan, Malinga Bandara, Farveez Maharoof, Lasith Malinga, Dilhara Fernando, Thilan Samaraweera.