I am working building some demos for Cloud SQL and one of the requirements I had was to run MySQL 5.7 and WordPress as my sample application. The demo consisted on migrating from a single VM environment with WordPress and MySQL running alongside. The narrative: the site got popular and the database became the bottle neck because of all the shared resources between them and the application. The proposed solution? A minimal downtime migration to Cloud SQL, moving the data layer to a dedicated server.
I am going to be doing this demo a lot of times, so I needed some way to automate it. I thought of doing through Docker. I am not Docker proficient, and to begin with I asked Anthony for help to get me to what I wanted, but there are so many nuances! Maybe someone will find a better solution to it than this one, but I decided to share what I got.
Let’s examine the two scenarios I faced. All examples assume Debian/Ubuntu.
I don’t run Docker, just have a VM and want to have MySQL 5.7
In this case it’s straightforward: you need to use the MySQL official APT repository available in https://dev.mysql.com/downloads/repo/apt/.
At this time the most recent version is mysql-apt-config_0.8.12-1_all.deb
, keep an eye before continuing this because it may change the version until you use this tutorial.
In line 2 you can change from mysql-5.7
to mysql-8.0
, if unspecified the command, version 8.0 will be installed.
I run Docker and want to have 5.7 or 8.0 installed on it
It’s a bit similar to the previous situation, you still need to go to the APT repository page to know which file to download and add this on your Dockerfile
:
Notice, you can also change the version of MySQL here. Don’t forget to pass DB_ROOT_PASSWORD
when doing your docker build
using the --build-arg
argument. More details here.
It works!
These are the workarounds to avoid using MySQL 5.5. After that I was able to finally automate my demo. Feel free here to share better examples of what I did, as I said, I don’t have proficiency in the subject.
via Planet MySQL
Extending WordPress Dockerfile to use MySQL 5.7 (or 8.0)