没有互联网连接时使用 mysql

Posted

技术标签:

【中文标题】没有互联网连接时使用 mysql【英文标题】:Working with mysql when there is no internet connection 【发布时间】:2013-02-23 13:11:18 【问题描述】:

我有一个 php+mysql 应用程序,想知道当互联网连接丢失时,使我的应用程序工作的最佳方法是什么。

我想拥有两个相同的数据库,一个在我的 Internet 主机中,另一个在我的本地主机中。因此,当没有连接时,我会将所有数据存储到我的本地主机。

我的问题是如何将数据从本地主机传输到我的互联网主机中的数据库?

【问题讨论】:

你的应用程序是做什么的? Possibly Duplicate.你想连接mysql远程服务器吗?如果你想访问远程服务器refer here@Renan Lopes Ferreira 我需要将数据保存在远程服务器中。但我想要一种方法来让我的应用程序即使在没有连接到这个远程服务器的情况下也能正常工作。 建议您应该在本地主机和远程服务器的网络(LAN)中,这样就可以了,没有必要连接互联网。 【参考方案1】:

您需要使用replication - 此链接将告诉您如何设置它,以便您的本地计算机是远程计算机的副本。

【讨论】:

这似乎是最好的方法,但是,我无法访问远程服务器上的那些“.ini”文件! 您的要求是仅出于测试目的而拥有本地副本还是为了使副本保持最新? 我需要本地主机作为副本,但我喜欢在本地主机中所做的所有更改,当互联网访问消失时,将其传输到远程服务器。我的国家的互联网非常不稳定,但我需要有数据,并且即使没有连接,系统也能正常工作。远程服务器与托管我的网站的服务器相同,这就是为什么不允许更改那些“.ini”文件 为什么不编写本地代码来生成 SQL 语句并将其写入文件。编写脚本以定期检查这些脚本是否存在。如果是这样,请尝试将它们应用到远程服务器,如果成功则删除它们。还定期从远程机器更新您的本地机器。远程机器是主副本,本地机器是从机(即不总是最新的,但你可以忍受) 另外我应该补充一点,你应该按时间顺序应用这些脚本(也许用 unix 时间戳命名它们。【参考方案2】:

您只是在收集订阅等数据吗?如果是这样,您可以在检测到主数据库已关闭时临时将新记录排队,并在检测到两个数据库都可用并且本地存在任何未处理的记录时进行普通的插入和删除以传输未处理的新记录。

如果您需要查询和维护两个数据库之间的关系数据,那么您将需要更健壮和复杂的复制策略。

【讨论】:

我想过这个,但是表很多,操作也很多。知道更新发生在哪里并将其一一传输到远程服务器似乎不是最好的方法 听起来你需要多主复制,这是一个具有挑战性的问题。这里有一个看起来不错的博客讨论,其中提到了 Galera 集群和 XtraDB 集群:mirantis.com/blog/ha-platform-components-mysql-rabbitmq【参考方案3】:

如果您在两台服务器上都有 phpMyAdmin,则可以导出 localhost 数据库,然后将其导入托管数据库。

【讨论】:

以上是关于没有互联网连接时使用 mysql的主要内容,如果未能解决你的问题,请参考以下文章

*** 时没有互联网连接 Ubuntu-WSL

Swift:没有互联网连接时如何在 webview 中显示错误消息? [复制]

尝试使用 JMeter 记录来自 android 应用程序的流量时没有互联网连接

IOS:没有互联网连接时未调用 fetchRecordZoneChangesCompletionBlock

当 UIWebView 没有互联网连接时实现 UIAlertView

iOS应用程序没有互联网连接时如何禁用segue?