As long as the traveling user will be adding, updating, and deleting records and can guarantee that no one else is touching in the master, there is something you can try.
What you want to do is setup MySQL Circular Replication (Master/Master) between Master and LapTop. Once you have this esatblished and the time has come for the traveling user (TVU) to leave for the week, here is what to do:
Step 1 : Run STOP SLAVE; on the Master
Step 2 : Run STOP SLAVE; on the LapTop
Step 3 : TVU inserts, updates, and deletes on the LapTop
Step 4 : Make sure TVU does not delete or update data that the Master will have worked on during the week.
Step 5 : When the TVU returns, run START SLAVE; on the Master to reconnect the Master to the LapTop. All inserts, updates, and deletes that occurred on the LapTop during the week will transmit over to the Master. Run SHOW SLAVE STATUS\G every couple of minutes on the Master and look for Seconds_Behind_Master going to 0. When it does, the data from the LapTop will be sync'd over to the Master.
Step 6 : (OPTIONAL) Run START SLAVE; on the LapTop to bring all the inserts, updates, and deletes the Master did during the week. Run SHOW SLAVE STATUS\G every couple of minutes on the LapTop and look for Seconds_Behind_Master going to 0. When it does, the data from the Master will be sync'd over to the LapTop.
The only real danger is if you delete or update data on the LapTop that still needs to be on the Master. If you forget that, step 5 will make that data change or disappear unintentionally. As long as you work with a new set of data on the LapTop only, there should be no problem.
You should test this between a DevServer and a LapTop you are using for Development only.
UPDATE 2011-07-24 21:42 EDT
Here is another thing you can try:
Step 1 : Setup mysql on the LapTop with no initial data on the laptop and no binary logging
Step 2 : mysqldump the data out of the Master and into the LapTop
Step 3 : Add this to my.ini on the LapTop
[mysqld]
log-bin=mysql-bin
Step 4 : Activate binary logging without a mysql restart on the LapTop
SET GLOBAL SQL_LOG_BIN = 0;
or just restart mysql
Step 5 : Perform inserts, updates, and deletes on the LapTop (Make sure they do not conflict with needed data on the Master)
Step 6 : run this
mysqlbinlog mysql-bin.0* > ThisWeeksChanges.sql
Step 7 : Run this on the Master
mysql> source ThisWeeksChanges.sql
I answered a question on how to use rsync to copy a live DB to another location.
You would repeat rsync process multiple times until two rsync's run in the same time.
Then, you would shutdown mysql on the master, perform a final rsync to the new server, and start mysql on the master.
You then properly prep the new server, make sure /var/lib/mysql has everything, make sure you erase all binary logs on the new server, and make sure you have the same my.cnf on both machines (you may want to change the server_id)
Here is an excerpt from that link:
Step 01) install the same version of mysql on ServerB that ServerA has
Step 02) On ServerA, run SET GLOBAL innodb_max_dirty_pages_pct = 0;
from mysql and about 10 minutes (This purges dirty pages from the InnoDB Buffer Pool. It also helps perform a mysql shutdown faster) If your database is all MyISAM, you can skip this step.
Step 03) rsync /var/lib/mysql of ServerA to /var/lib/mysql on ServerB
Step 04) Repeat Step 03 until an rsync takes less than 1 minute
Step 05) service mysql stop
on ServerA
Step 06) Perform one more rsync
Step 07) scp ServerA:/etc/my.cnf to ServerB:/etc/.
Step 08) service mysql start
on ServerB
Step 09) service mysql start
on ServerA (optional)
Give it a Try !!!
Best Answer
Sorry. If you are trying to have many Masters and one Slave -- that is not supported. (Some third party addons may have such.) It is better to have the 5 servers all write to the 'headquarters' Master. Network latencies are probably not a serious problem.