Rodriguez, who racked up a major-league record of 13 Gold Glove awards for a catcher, had played the last two years for the Washington Nationals after stints with the Texas Rangers, Florida Marlins, Detroit Tigers, New York Yankees and Houston Astros.
He finished with a .218 average in 44 games for the Nats in 2011 after missing nearly two months with a strained oblique muscle.
The catcher had yet to make an appearance this season.
"Today is a very hard day for me," Rodriguez said in Arlington, Texas. "It's been a great, great run -- 21 years have been beautiful."
He spent 11 seasons with the Rangers, for whom he made his debut June 20, 1991, at age 19.
"I want to thank the fans here from Texas and fans from all over baseball. Thanks to the all the organizations I've played with," Rodriguez added.
Rodriguez had a career average of .296 with 311 home runs and 1,332 RBI.
Members of Congress to keep receiving porn magazine
Putin thinks Obama would save him if he were drowning