首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将远程MySQL数据库连接到本地MySQL数据库?

将远程MySQL数据库连接到本地MySQL数据库?
EN

Database Administration用户
提问于 2012-06-28 10:41:52
回答 2查看 8.1K关注 0票数 2

我想编写PHP代码嵌入到Drupal7模块中。

我想调用一个过程,它可以将本地MySQL数据库中新生成的数据复制到远程MySQL数据库中。

当数据插入本地数据库的表A中时,应将其复制到远程MySQL数据库上的特定表B中。

代码语言:javascript
复制
Table 'A' is on local host.

Table 'B' is on remote server.

INSERT data on 'A' -> copied to 'B'

这个是可能的吗?

EN

回答 2

Database Administration用户

回答已采纳

发布于 2012-06-28 11:45:00

有三种方法来设置这个

方法#1 : MySQL复制

在从服务器具有此选项的位置设置MySQL复制

代码语言:javascript
复制
replicate_do_table=mydb.mytable

然后,您执行的任何DML (插入、更新、删除)或DDL (ALTER )都将立即转到serverB。这使得方法#1是最快和最细粒度的方法。

方法#2 :将表复制到另一个服务器

下面是我在2011年5月31日为这个方法做的一篇较早的文章:如何从MySqlServer复制表_A到MySqlServer_B?

方法#3 :联邦表(仅限MyISAM)

假设serverA上的mytable如下所示

代码语言:javascript
复制
CREATE TABLE mydb.mytable
(
...
) ENGINE=MyISAM;

通过在serverB上运行如下所示,您可以在serverA中对目标表进行映射

代码语言:javascript
复制
CREATE TABLE mydb.mytable_remote LIKE mytable;
ALTER TABLE mydb.mytable_remote ENGINE=FEDERATED
CONNECTION='mysql://username:password@serverB/mydb/mytable';

我早在2012年1月4日就写了一篇文章:从本地mysql服务器中获取外部托管的db表

然后,必须将serverA中的所有内容批量复制到在serverA上运行以下命令的serverB:

代码语言:javascript
复制
INSERT IGNORE INTO mydb.mytable_remote SELECT * FROM mydb.mytable;
票数 3
EN

Database Administration用户

发布于 2022-06-07 09:53:38

复制方法对这种情况很好,为什么,这里是MySQL中复制的优点包括:

扩展解决方案-在多个副本之间传播负载,以提高性能。在此环境中,所有写入和更新都必须在复制源服务器上进行。但是,读取可能发生在一个或多个副本上。这个模型可以提高写操作的性能(因为源专用于更新),同时在越来越多的副本中显着地提高读取速度。

数据安全性-由于数据被复制到副本,并且副本可以暂停复制过程,所以可以在副本上运行备份服务,而不会损坏源上的相应数据。

分析--可以在源上创建实时数据,而对信息的分析可以在副本上进行,而不会影响源的性能。

远程数据分发--如果分支机构希望处理主数据的副本,则可以使用复制创建数据的本地副本供其使用,而不需要永久访问源。

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/20095

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档