繁体   English   中英

在MySql中同步本地数据库和Web服务器数据库

[英]to sync local database and web server database in MySql

我正在使用PHP和Mysql来开发应用程序。 我们有两个数据库副本,一个在本地服务器(即我们的终端),一个在Web服务器上。 我们希望同步数据库,以便在本地数据库中进行的任何更改也应反映在Web服务器数据库上。 那可能吗?? 目前我们正在使用PHP脚本来实现这一目标......这需要花费太多时间并且不可靠。 可以做些什么让MySQL在内部触发整个更新和逻辑?

注意: - 我们的本地服务器运行在Windows上,而Web服务器是基于Unix的,我们不使用命令行访问这两台机器,实际上我们使用PHP应用程序更新和维护数据(即添加新的或更新数据)

MySQL复制可能是您正在寻找的,但我不建议同步开发和生产数据库。 在网页发布后继续开发时,这会让您遇到麻烦。 常见的方法是开发服务器(虚拟数据,不公开),测试(真实数据,不公开)和生产(真实数据,公共)。

编辑 :我认为网络服务器也是一个大师。

在这种情况下,请看MySQL中的复制方式; 它只会将推送到本地数据库的数据复制到网络服务器。

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

1)。 在这里你需要两台PC,如果你是离线进行测试,第一台PC将是你的MASTER而其他PC将充当SLAVE。

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

3)。 我是在Localhost上使用以下两台PC执行的

机器-1: - 192.168.1.20

机器-2: - 192.168.1.21

然后打开你的Mysql并开始在两台机器上输入这些命令,如下所示

---------------- 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;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM