The instructions for setting up a shared database don’t really specify on which machine the shared database should be located.
One approach is to run the MySQL database server on one of the Cortex workstations in the cluster. For a small system of 2-3 workstations, this may be OK, but as things scale up, it might not be a great idea.
If the server is under heavy load from computation for Cortex, it may impact how well it can service the rest of the machines connected to its database, particularly as the number of projects grows as well.
You could have MySQL running on each workstation, and spread the load and the risk by creating different projects in different databases. While this may be better than putting everything on a single Cortex workstation, spreading things around could create additional overhead on managing the workflow.
Typically, we have recommended installing MySQL on a dedicated database server. This server can be running Linux or Windows. The server could be dedicated hardware or a virtual machine. For redundancy / high-availability one can even run it on a VM on something like a pair of servers using the Avance Stratus HA product.
Ultimately its up to you to determine which approach is the best fit for a given project or your organization. If you have thoughts or questions about the relative pros and cons of one approach vs another, feel free to comment here though.