如何将MySQL数据库从Web服务器自动备份并恢复到本地计算机

如何将MySQL数据库从Web服务器自动备份并恢复到本地计算机,mysql,Mysql,我有一个web应用程序,应该在一台本地计算机(kiosk display)上运行,但我想让用户在web上(从任何PC)进行更改,并在其本地PC(kiosk display)上更新实例。根据我的想象,web服务器上的MySQL实例将取代本地(kiosk display)机器上的MySQL实例。这可以每晚做一次(不一定是即时的) 有人知道这样做的方法吗?我是开放的产品或编码它自己 我将感谢任何信息或头脑风暴 谢谢。如果客户端有固定IP,您可以执行以下操作: 在服务器上创建mySQL用户帐户,只允许

我有一个web应用程序,应该在一台本地计算机(kiosk display)上运行,但我想让用户在web上(从任何PC)进行更改,并在其本地PC(kiosk display)上更新实例。根据我的想象,web服务器上的MySQL实例将取代本地(kiosk display)机器上的MySQL实例。这可以每晚做一次(不一定是即时的)

有人知道这样做的方法吗?我是开放的产品或编码它自己

我将感谢任何信息或头脑风暴


谢谢。

如果客户端有固定IP,您可以执行以下操作:

  • 在服务器上创建mySQL用户帐户,只允许他们从特定的IP范围登录,给他们
    SELECT
    权限

  • 在客户端PC上安装mysql客户端二进制文件

  • 使用
    cron
    或Windows任务计划程序执行远程
    mysqldump

    mysqldump -u username -h remote.server.com databasename > dump.txt
    mysql -u local_username -h localhost databasename < dump.txt
    
    mysqldump-u username-h remote.server.com databasename>dump.txt
    mysql-u local_username-h localhost databasename
这不是一个完美的解决方案——通常的共识是mySQL根本无法从外部访问。但是如果你有固定的IP,也可以调整防火墙,只调整来自这些IP的mySQL连接,这肯定是最简单的解决方案

更安全的解决方案可能是:

  • 使用服务器端脚本语言在本地构建数据库转储并将其存储在已知目录中

  • 在客户端安装
    wget
    二进制文件

  • 让客户端
    wget
    调用创建转储的服务器端脚本(例如,作为网页)

  • 当页面完成下载(=转储完成)后,启动另一个
    wget
    ,FTPing到服务器(当然权限非常有限)并获取刚刚构建的数据转储-或者,为了安全起见,使用安全协议,如sftp或scp/ssh。有Windows二进制文件可用于此目的


谢谢Unicron。这是一些很好的信息,我真的很感激这些信息。我要试试你的“更安全”的选择。