PHP MYSQL单向同步方案
2024-08-27 20:29:16
项目上有个需求,需要从外网服务器的MYSQL同步到本地服务器上。
思路如下:
1 在外网MYSQL中创建表 table_change_log ,记录表中数据的更改记录。
DROP TABLE IF EXISTS `table_change_log`;
CREATE TABLE `table_change_log` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`table_name` varchar(20) NOT NULL DEFAULT '' COMMENT '表名',
`table_op` varchar(20) NOT NULL DEFAULT '' COMMENT '操作',
`table_id` int(11) NOT NULL DEFAULT '' COMMENT '表ID',
`add_time` datetime NOT NULL COMMENT '添加时间',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=0 DEFAULT CHARSET=utf8 COMMENT='表操作记录';
2 在外网MYSQL需要同步的表中,添加触发器(添加时、修改时、删除时)
DROP TRIGGER IF EXISTS `tg_{0}_insert`;
CREATE TRIGGER `tg_{0}_insert` AFTER INSERT ON `{0}`
FOR EACH ROW INSERT INTO table_change_log (`table_name`, `table_op`, `table_id`, `add_time`) VALUES('{0}', 'insert', new.id, now()); DROP TRIGGER IF EXISTS `tg_{0}_update`;
CREATE TRIGGER `tg_{0}_update` AFTER UPDATE ON `{0}`
FOR EACH ROW INSERT INTO table_change_log (`table_name`, `table_op`, `table_id`, `add_time`) VALUES('{0}', 'update', old.id, now()); DROP TRIGGER IF EXISTS `tg_{0}_delete`;
CREATE TRIGGER `tg_{0}_delete` AFTER DELETE ON `{0}`
FOR EACH ROW INSERT INTO table_change_log (`table_name`, `table_op`, `table_id`, `add_time`) VALUES('{0}', 'delete', old.id, now());
3 本地服务器从外网拉取同步的PHP代码并执行。
$url="http://xxx.xxx/sync/client.php";
$html = file_get_contents($url); if ($html === FALSE)
{
exit("NET ERROR!");
} file_put_contents("sync_exe.php", $html);
include "sync_exe.php";
4 获取外网的更改记录,更新到本地服务器MYSQL中。
源码下载:http://files.cnblogs.com/files/zjfree/PHP_MYSQL_sync.rar
最新文章
- powerdesigner,eclipse整合安装
- 剑指Offer 矩形覆盖
- Java关键字final、static使用总结(转)
- android学习记录(十三)Task 和 Activity 回退栈操作。
- 交叉编译lsof for android
- 关于使用digitalocean的vps
- win7限制登录时间的设置方法
- ios 绘制wav波形图
- 交换A与B值的四种方法
- js运算符单竖杠“|”的作用
- Http协议---Hyper Text Transfer Protocol
- MongoDB Java Driver 3.4操作
- 超大文本文件浏览器Snaptext,支持不限制大小的文本文件浏览
- keytool 错误: java.lang.Exception: 密钥库文件不存在: keystore
- Java并发编程:CountDownLatch、CyclicBarrier和 Semaphore
- Luogu 1083 借教室(二分,差分)
- CentOS6.5安装Kibana5.3.0
- unordered_map/unordered_set &; unordered_multimap/unordered_multiset非关联容器
- SSIS 事件的向上传递
- 部分Web服务器信息对比