如何 - 从Web服务器到本地计算机自动备份和还原MySQL数据库

时间:2010-04-16 14:40:23

标签: mysql

我有一个应该在单个本地计算机(自助服务终端显示器)上运行的Web应用程序,但我想让用户在Web上(从任何PC)进行更改并在本地更新实例PC(自助服务终端显示)。根据我的想象,Web服务器上的MySQL实例将只替换本地(kiosk显示器)机器上的MySQL实例。这可以在夜间进行一次(不必立即进行)。

有谁知道这样做的方法?我对产品开放或自己编码......

我会感激任何信息或头脑风暴。

感谢。

1 个答案:

答案 0 :(得分:0)

如果客户端有固定的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
    

这不是一个完美的解决方案 - 通常的共识是不能从外部访问mySQL。但是如果你有固定的IP,也可以调整防火墙来调整那些IP的mySQL连接,那肯定是最简单的解决方案。

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

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

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

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

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