We've been developing a .NET desktop application that will be integrated with a website, both using MySQL. Each software's customer will have a website. We need to sync the customer's database with a correspondent database running in our server. We'll have one database running in our server per customer. These information will be displayed in customer's website.
The sync must be made in short periods. We don't want to have an outdated website.
We've thought to write code to make this sync. It seems to be a hard task to achieve a solid sync. Customer's database will be large, it seems to be impracticable to send in short periods of time.
Then we've found database replication. Great! A smooth way to sync the database. We don't need to hard code this solution! Our customers' database would be the master and our server's ones would be the slaves. We need multiple slaves in the same MySQL server. MySQL doesn't allow it.
We could run multiple MySQL instances, a instance per customer. But we need to open a port per instance, and it sounds insecure.
Finally, we thought to open the ports and deny non-customer access with a firewall.
How would you solve this problem? We would like to listen your opinion. Thanks.