The show, which was telecast live on the CMT cable channel, came on a particularly good day: The skies were mostly clear and only a little oil was washing in on the white sand about 100 miles north of the Deepwater Horizon site. A sand-filled barrier erected by the Alabama National Guard kept members of the audience from getting near the surf just in case.
Buffett, who grew up on the Alabama coast, came on stage to a huge cheer.
"It's a little like Jazz Fest with an ocean," said Buffett, referring to the huge music festival in New Orleans. "It is a pleasure to be here on a beautiful Gulf Coast day."
Buffett's set list included favorites like "Son of a Son of a Sailor," "Come Monday" and "Margaritaville," with its line about "all of those tourists covered with oil." His biggest fans, who call themselves "Parrotheads," sang along with every word.
Alabama Gov. Bob Riley said the state might use its $15 million in tourism promotion money from BP to stage additional shows through the fall.
"With all the Gulf states running commercials saying, `Our beaches our beautiful,' we'll show people ours are," Riley said. "It would be something different, and a great way to get people to the coast."
Florida Gov. Charlie Crist even came to see Buffett.
"I think all the Gulf states will benefit from this," Crist said. "We're all in this together. God bless Jimmy Buffett."
The Buffett bash accomplished its goal of luring visitors to the coast despite the oil spill: Parking lots were fuller than they had been in days outside of hotels, condominiums, restaurants and souvenir stores in this beach town of 5,000 residents.
Organizers gave away 35,000 tickets, but an officials attendance count wasn't available.
The concert originally was scheduled for July 1 but had to be postponed because heavy surf from Hurricane Alex.
Buffett was born in Mississippi and grew up on the Alabama coast, and his sister owns a popular restaurant and marina on the intracoastal waterway within a few miles of the beach. Buffett played a surprise concert there on June 30 after the cancellation.