Search code examples
pythonmysqlwindows-installersoftware-distribution

Is it possible to install MySQL Server along with standalone client-side software?


I'm writing an application for a venue that will have large-scale competitions. In order to effectively manage those competitions, multiple employees need to engage with and modify a set of data in real-time, from multiple machines in the gym. I have created a Python application which accomplishes this by communicating with a MySQL server (which allows as many instances of the application as necessary to communicate with it).

Is there a nice way to get MySQL server installed on a client machine along with this Python application (It only necessarily needs to end up on one machine)? Perhaps is there a way to wrap the installers together? Am I asking the right question? I have no experience with application distribution, and I'm open to all suggestions.

Thanks.


Solution

  • The 'normal' way to do it is to have a network setup (ethernet and/or wireless) to connect many Clients (with your Python app) to a single Server (with MySQL installed).

    To have the "Server" distributed among multiple machines becomes much messier.

    Plan A: One Master replicating to many Slaves -- good for scaling reads, but not writes.

    Plan B: Galera Cluster -- good for writing to multiple instances; repairs itself in some situations.

    But if you plan on having the many clients go down a lot, you are better off having a single server that you try to keep up all the time and have a reliable network so that the clients can get to that on server.