Running Ghost on MySQL 9.5 (Docker) - Experiences and Logs

Hello everyone,

I wanted to share my experience regarding the MySQL version requirements. While the official documentation recommends MySQL 8.0, I have successfully set up and am currently running Ghost with MySQL 9.5.0 in a Docker environment (aaPanel) for my personal blog.

Despite the warnings about version compatibility, everything seems to be working perfectly. I’ve checked the logs, and the initialization process was flawless.

Here are some key points from my setup:

  • Environment: Docker on Enterprise Linux 9.

  • MySQL Version: 9.5.0-1.el9.

  • System Resources: 2 logical CPUs and 4GB RAM.

  • Status: Database ghost_prod_db was created successfully, and the server is “ready for connections” on port 3306.

Logs Snippet:

[System] [MY-015015] [Server] MySQL Server - start.
[System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 9.5.0) starting as process 1
[System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: ‘9.5.0’ socket: ‘/var/run/mysqld/mysqld.sock’ port: 3306

Since this is a personal blog, I haven’t encountered any issues so far. The logs are clean, and InnoDB initialized without any errors.

Is there any specific reason to downgrade to 8.0 for a small-scale personal site, or is it safe to continue with 9.5 as long as the logs remain stable? I’d love to hear if anyone else is experimenting with 9.x versions.

I think it’s best to downgrade to MySQL 8 strictly because it’s tested on scale whereas yours is just 1 instance. Many factors are at play.
I could see it working no problem, but it’s a wildcard.
With selfhosting, you can do what you want. Just make sure to check everything twice and keep good backups.

For example, when posting a comment it sometimes gets stuck. I can’t clearly tell whether this is caused by MySQL 9 or something on the browser/client side.

Would you recommend moving to MySQL 8.0 or 8.4 in this case, or should I stay where I am for now? What would you do?

I personally would do a MySQL dump and migrate. But that’s just me.
You’re free to do what you want man lol.

There’s no logs at all when it gets stuck?