I have an access database on a windows machine, which I must import into mysql on a linux webserver. At the moment the access dabatbase table is exported as a text file, aut
To help transfer only changes, I suggest you add a new table to your Access database called something like RecordChanges.
The table structure would be as follows:
RecordChangeID (int) - Primary Key (Autonumber)
TableName (varchar(250)) - Name of table that changed
RecordID (int) - ID of the record in that table that was added / modified
RecordAction (char(1)) - 'A' if add, 'M' if modified or 'D' if deleted
Note - by adding a user ID and other details to this you could have a nice audit trail.
This is the painful part - but I would create a subroutine in your application to add a record to this table every time a record is changed in a table you want to synchronize with your MySQL database.
Once this is done I would create another table with only one record, called ExportStatus, with the following structure:
LastRecordChangeID (int) - ID of the last Record Change
you exported in the Record Changes table
Then create a subroutine to go through all Record Changes since the last export (you retrieve this from your ExportStatus table) and generate SQL statements to update your MySQL database, being sure to update your ExportStatus table when done. You could delete all the RecordChange records that were successfully exported, or leave them in as an audit trail.
Before implementing this, you would need to do an initial synchronise the way you are currently doing it.