2010-10-20 142 views
3

我使用PHP和MySQL开发应用程序。我们有两个数据库副本,一个在本地服务器(即我们的结尾),另一个在Web服务器。我们希望同步两个数据库,以便在本地数据库中进行的任何更改也应该反映在Web服务器数据库上。那可能吗?? 目前我们正在使用PHP脚本来做这件事......这需要花费太多时间和不可靠。 可以做些什么以使MySQL在内部激发整个更新和逻辑?我们的本地服务器运行在Windows上,而Web服务器是基于Unix的,并且我们不使用命令行来访问这两台机器,实际上我们使用PHP应用程序来更新和维护数据(即添加新的或更新数据)同步本地数据库和Web服务器数据库MySql中

+0

给出请添加详细信息...什么平台/操作系统...您是否有两台机器的命令行访问.... – 2010-10-20 11:32:59

+0

@Pekka有任何问题,如果我们使用PHP脚本比使用MySQL复制? – 2010-10-20 11:42:56

回答

2

MySQL Replications可能是你在找什么,但是我不建议同步开发和生产数据库。在网页发布后继续开发时,这可能会让您有麻烦。常见的方法是有一个用于开发的服务器(虚拟数据,不是公开的),测试(真实数据,不是公开的)和生产(真实数据,公共)。

0

编辑:我认为一个Web服务器也是一个高手。

在这种情况下,顺便看看replication in MySQL作品;它将简单地将推送到本地数据库的数据复制到网络服务器。

+0

我认为这是主从当地存在主机和网络服务器是从实际..在我第一次在系统上这样工作 – 2010-10-20 11:40:18

-1

将数据与Web服务器数据库本地数据库MySql中,您可以通过使用复制实现这一功能。在这里我有一些SQL命令来执行复制

1)。在这里你需要两台电脑,如果你是为了测试目的离线进行的,第一台电脑将是你的主设备,而另一台将作为从设备。

2)。检查机器的IP地址。 3)。 192.168.1.20

机2: - - :192.168.1.21

,然后打开你的Mysql和启动上输入这些命令,我​​有两个以下这些电脑

机1执行它在localhost两台机器下面

---------------- Commands for SERVER-1 ------------------ 
IP-Address e.g. = 192.168.1.20 
--------------------------------------------------------- 

CREATE USER 'server1'@'%' IDENTIFIED BY '12345'; 

GRANT REPLICATION SLAVE ON *.* TO 'server1'@'%' IDENTIFIED BY '12345'; 

FLUSH TABLES WITH READ LOCK; 

SHOW MASTER STATUS; 

UNLOCK TABLES; 


---------------- Commands for SERVER-2 ----------------- 
IP-Address e.g. = 192.168.1.21 
-------------------------------------------------------- 

STOP SLAVE; 

RESET SLAVE; 

CHANGE MASTER TO 
MASTER_HOST = '192.168.1.20', 
MASTER_USER = 'server1', 
MASTER_PASSWORD = '12345', 
MASTER_PORT = 3306, 
MASTER_LOG_FILE = 'Type_your_log_file_name', 
MASTER_LOG_POS = TYPE_YOUR_LOG_POSITION_HERE, 
MASTER_CONNECT_RETRY = 10, 

START SLAVE; 

SHOW SLAVE STATUS \G; 
+0

虽然此链接可以回答这个问题,最好是包括的主要部分在这里回答并提供参考链接。如果链接页面更改,则仅链接答案可能会失效。 – 2015-06-16 10:03:08

+0

谢谢你的建议@NarendraSisodia。现在检查出来,我更新了整个答案现在很好? – 2015-08-19 05:36:24

相关问题