We read that God commanded Moses to speak to the rock at Meribah so that water could flow out of it. Instead, Moses struck the rock with his staff:
Then Moses and Aaron gathered the assembly together before the rock, and he said to them, “Hear now, you rebels: shall we bring water for you out of this rock?” And Moses lifted up his hand and struck the rock with his staff twice, and water came out abundantly, and the congregation drank, and their livestock. And the LORD said to Moses and Aaron, “Because you did not believe in me, to uphold me as holy in the eyes of the people of Israel, therefore you shall not bring this assembly into the land that I have given them.” These are the waters of Meribah, where the people of Israel quarreled with the LORD, and through them he showed himself holy.—Numbers 20:10-13 (ESV)
In Exodus 17, we read a similar story (or perhaps another telling of the same incident) and God commanded the rock to be struck with the staff Moses struck the waters of the Nile with. It seems that God did not censor Moses then the way he does in Numbers. Further, the punishment seemed excessive to the crime. So:
Was Moses' mistake in striking the rock rather than speaking to it?
What factor made that mistake worth barring Moses from the Promised Land?
I'm particularly interested in evidence from the text itself to answer the second question.