A drone attack on the Russian fleet in the Crimean port of Sebastopol on Sunday wounded five people, the Russian-annexed city's mayor Mikhail Razvozhayev said.
"This morning, Ukrainian nationalists decided to spoil the Day of the Russian Fleet" being celebrated on Sunday, he said on Telegram, adding that five people, including employees of the army staff, had been wounded.
All festivities had been "cancelled for security reasons", he said, asking residents of the city to remain indoors "if possible".
Huge celebrations are due to take place in Russia, including a naval parade in Saint Petersburg that will be attended by President Vladimir Putin.
Ukrainian forces have in recent weeks retaken territory seized by Russian forces since their February 24 invasion.
On Wednesday, Ukrainian strikes partially destroyed a major bridge in the city of Kherson, occupied by Russian forces.