Shall I use MySQL replication to synchronize a local database and a remote database? If so, how do I setup both master and slave? Are there any other methods available to do
One interesting solution is the Percona XtraDB Cluster
https://www.percona.com/doc/percona-xtradb-cluster/LATEST/intro.html
Allows to setup multi master topology.