The 24-year-old, who scored 10 goals in 51 Bundesliga appearances for the 05ers, will wear the No.15 shirt.
"Cologne is the right step for me following two fantastic years in Mainz," Cordoba explained. "The Cologne representatives went out of their way to bring me here, and I wanted to take the opportunity to play for one of Germany's biggest traditional clubs. I experienced the wonderful atmosphere of the RheinEnergieSTADION on the final day of the season. I'm looking forward to playing there in a home shirt."
Cologne general manager Jörg Schmadtke was equally delighted with the deal. "Jhon Cordoba is a quick and physical centre forward with a nose for goal," he said. "He has a lot of experience for his age, but we still think he has a lot of potential."
Watch: Jhon Cordoba living the dream in the Bundesliga