我正在用 PHP 和 MySql 为我的客户端创建一个软件,该软件将在本地网络中运行,该软件也应该在线运行,即所有数据都应该在线查看,我想知道有没有办法每当互联网连接时,将 mysql 数据库从本地更新为在线,如果未连接互联网,所有数据将存储在本地 mysql 服务器中。他们不会在在线服务器中添加任何数据,他们只会查看内容。请帮助我
4 回答
听起来您正在寻找一种方法来拥有一个只读的“在线”(假设是 WAN)MySQL 服务器,该服务器是从由您的用户更新的读写“离线”(LAN)MySQL 服务器更新的。
如果是这种情况,您可能需要考虑主/从 MySQL 复制配置: http ://www.rackspace.com/knowledge_center/article/mysql-replication-masterslave
在您的 mysql 数据库之间设置复制。本地网络数据库将是从属服务器,Web 服务器将是主服务器。
有关设置复制,请参阅http://dev.mysql.com/doc/refman/5.5/en/replication-howto.html 。
您可以在本地服务器上运行 cron 作业,该作业在 Internet 可用时监控并将数据上传到在线服务器。您需要跟踪(设置状态)哪些数据已上传哪些不用于同步
我建议您设置主/从复制。我会让本地服务器成为主服务器,互联网服务器成为从服务器。但是,如果您使用的是公共共享托管服务,我不太确定您是否有权设置此类数据库复制结构。
试试https://www.digitalocean.com/community/articles/how-to-set-up-master-slave-replication-in-mysql。但是,对于 5.6 之前的 mysql 版本(我认为),您不能从预定义的时间间隔延迟复制。但是,http ://alexalexander.blogspot.com/2013/03/mysql-slave-delay-how-to.html 建议使用称为 percona 工具包的东西。不过我没用过。