You can only buy 3 (technically 4) and that is from the older man left of the counter in the Stone Emporium in Luminose City.
The four you can buy are the Blastoisinite, Charizardite X, Charizardite Y, and Venasaurite.
You get Charizardite X in Pokemon X, and Charizardite Y in Pokemon Y
He will give you the Mega Stones of the starter Pokemon you didn't pick, so you cannot have two Venasaurites without trading or cheating.
They cost as high as 1,000,000 Poke and as low as 10,000 Poke, depending on your style.
You get all the others as gifts, or on the ground using the Upgraded Mega Ring.