1. Postgres 7 supporting windows (I _think_ 7 was the first). That brought a ton of users into the community
2. Oracle's acquisition of mysql, and subsequent forking. That caused a lot of people to look around for other solutions
3. Amazon RDS
It was this one for me.
I was not one of those people though, but lucky enough to have had PostgreSQL running on DEC Alpha and GNU/Linux (Red Hat) as the core tool for the relational database course while I was getting my degree in computer science / information technology. A whole semester spent at the psql prompt doing SQL and programming the web application talking to it in PHP. That was back in the 20th century.
At the same time, a lot of people kept trying to just use it as a dumb data store like MySQL without realizing exactly how much you could do with it. 90% of the time you don't need a dedicated search engine syncing and all the headaches that come with it, for example.
That’s not to imply Heroku is the sole reason Postgres is where it is today. It’s the effort of tens of thousand of people in the community. But Heroku’s investment in playing their part to make that happen was very deliberate and intentional.
I was on the other side of this trade. My experience was that everyone used Oracle. Then PostgreSQL and MySQL appeared as OSS alternatives. After spending a day reading the dev mailing lists for both it was very clear to me I would never deploy MySQL in any situation where I had control over the DB choice. History seems to have proven that to be a reasonable position.
Pg always looked like a better choice than mysql to me. As evidenced during an early job I did where mysql disappeared some of my data it really shouldn't have done due to its well understood but not by me back then pitfalls.
I mean yeah whatever floats your boat but I find it torturous for anything other than as a specialist platform for doing linear algebra - aka statistical analysis.
I got a nice half hour meeting with one of the core R developers a few years ago back when I was pretending to be an academic - he was a regular collaborator with one of the senior academics in the business school that most of my work was coming from at the time.
First instance was that there was MySQL service that crashed and refused to start up. The machine was not rebooted or shut down abruptly, disk was not corrupted, also disk was not full and had plenty of space. Running repair command resolved the issue, but it was weird.
In another instance we run into a bug and apparently certain character combination in the data made MySQL all out of sudden think the data was encrypted.
MySQL got popular because it was the database of choice on PHP, while on Python that was Postgres (via psycopg2).
If the database of choice for Python wasn't Postgres, Heroku likely would stick with MySQL.
There were also other things that contributed to it, like for example purchase of Sun by Oracle and then stalling MySQL development.