A gunman opened fire inside a small-town restaurant at lunchtime Tuesday, killing eight people and seriously wounding a waitress before he fatally shot himself, officials said. It was the worst shooting attack in the country's history.

The gunman was a local man around age 60, said Patrik Kuncar, mayor of the southeastern town of Uhersky Brod.

Czech public radio said the gunman called a local television station before the attack, complaining that police weren't solving his problems and threatening that he would "take things into his hands."

Interior Minister Milan Chovanec who arrived at the scene said "it was not a terrorist attack."

The gunman was armed with two pistols and opened fire at the approaching police officers, Chovanec said.

A police officer cordons a site near a restaurant where a gunman opened fire in Uhersky Brod on Tuesday. (Radovan Stoklasa/Reuters)

The attack shocked the town of 17,000 that lies 300 kilometres southeast of Prague, the capital, and is home to the Ceska Zbrojovka gun plant.

"Nobody believed anything like that could happen in such a small town," Kuncar said. "I can hardly imagine what consequences it will have for the future life in this town."

The victims have been identified and were all from the region, Chovanec said.

The country's chief police officer, Tomas Tuhy, said authorities wouldn't reveal more information in the coming hours because of the ongoing investigation.

'I am shocked'

Petr Gabriel was in the restaurant's bathroom when the shooting began.

"That saved my life," Gabriel told the Czech public television. He spent two hours in the bathroom until he was found by police.

The waitress was shot in the chest and had hour-long surgery, said Dana Lipovska, spokesman for the hospital in the nearby town of Uherske Hradiste. Her condition was "very serious," Lipovska said.

The Czech Republic has strict gun control laws, but hunting is popular in the eastern European nation.

"I am shocked by the tragic attack in Uhersky Brod," Prime Minister Bohuslav Sobotka said in a statement while on a trip to South Korea. He offered his condolences to the victim's relatives and President Milos Zeman did the same.

German Chancellor Angela Merkel sent a telegram expressing her condolences to the Czech prime minister.

"It is with great distress that I found out about the horrible attack in Uhersky Brod, which killed many people," the chancellor wrote.

"It fills me with deep sadness if people become victims of random violence. I'm convinced that the people of Uhersky Brod and of the entire Czech Republic will react with great solidarity to this tragic event.

The Czech Republic became an independent nation in 1993 after the split of Czechoslovakia.

In a tragedy of a similar scope in the then-communist Czechoslovakia, a female truck driver intentionally hit a group of people waiting for a tram in Prague in 1973, killing eight. She was later executed.