我轉換的批准答案的cronjob我PHP腳本如下 -
種配置:
$remoteDbUser = '***';
$remoteDbPass = '***';
$remoteDbHost = '192.168.1.19';
$remoteDb = 'RemoteDB';
#$remoteDbTable = '';
$localDbHost = '192.168.1.35';
$localDbUser = '***';
$localDbPass = '***';
$localDb = 'LocalDB';
同步功能:從cron腳本
/*Passing `$remoteDbTable` name as function argument, Because I have many Remote DB table to synchronize with my Local DB table*/
function RemoteDbSynchronze($remoteDbTable='RemoteTable'){
global $remoteDbUser,
$remoteDbPass,
$remoteDbHost,
$remoteDb,
$localDbHost,
$localDbUser,
$localDbPass,
$localDb;
$sql = sprintf(
"mysqldump -u%s -p%s -h%s %s %s --set-gtid-purged=OFF | mysql -h%s -u%s -p%s %s",
$remoteDbUser,
$remoteDbPass,
$remoteDbHost,
$remoteDb,
$remoteDbTable,
$localDbHost,
$localDbUser,
$localDbPass,
$localDb
);
shell_exec($sql);
}
調用函數:
RemoteDbSynchronze('RemoteTable');
RemoteDbSynchronze('AnotherRemoteTable1');
RemoteDbSynchronze('AnotherRemoteTable2');
..........................................
RemoteDbSynchronze('AnotherRemoteTableN');
更多細節,shell_exec和Cron
使用'mysqldump'轉儲模式(創建新模式,你的表複製到該架構,如果你不想拋售一切)。然後你可以在同一個數據庫上工作。 – SOFe
你爲什麼要這樣做?只需創建一個轉儲,然後將其插入本地系統 –
因爲每隔30分鐘我需要'RemoteDB.RemoteTable'數據到'LocalDB.LocalTable' @LuciaAngermüller –