What a sad sad day.
Even countries with gun control have instances like this (but they're arguably less frequent), and some countries with lots of guns have almost no problems like this at all (Switzerland for instance).
Just trying to imagine dropping a grade school kid off at school to find them dead in the afternoon from an insane thing like this I find that I can't do it, it is just too far from what I can still imagine. And I have a pretty rich imagination...
This world could be so nice, why does it have to be such a crappy place?
When you have a population size of 300 million you're going to get a lot more outliers (crazy people) than if you have a population of 7 million. Statistically, you will also have crazier people.
I don't believe the shooters are mentally ill. There is simply sad, evil people in the world that think that shooting a lot of people will get them some attention/fame/recognition. In a society like the current U.S. society where being unknown and alone is worse, in the mind of some people, than being known as a serial killer this kind of thing is bound to happen.
Due to the nature of your society, you will never ban firearms. They will always be available and those wanting to kill can always find another ways.
In mu humble opinion, your problem lies in the fact that some very weird and sad people there find that serial killing is a glamorous life/ending. The worship or desire of a thug life or being known/recognized as a criminal by the media and society drives these wackos towards this behavior.
When consumerism is king and money/oportunity/perspective is low, when not being the most popular thing ever is worse than dying, when parents don't impose limits to their kids and just keep pumping meds into them, this disaster will keep happening.