首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL跨服务器选择查询

MySQL跨服务器选择查询
EN

Stack Overflow用户
提问于 2009-05-01 06:00:33
回答 3查看 57.4K关注 0票数 28

是否可以使用MySQL客户端编写跨服务器select查询。基本上设置如下所示。

服务器IP地址:服务器数据库

1.2.3.4版本测试

a.b.c.d测试软件测试

我想要编写一个查询,该查询将从1.2.3.4上的Test Database中的表中选择行,并将结果插入到a.b.c.d上的Test Database中

我的服务器相距数英里,因此我将打开一条SSH隧道来连接两者。

有什么建议吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-05-01 09:37:08

正如已经提到的,mysqldump可以是一种解决方案,或者您可以尝试使用SELECT ... INTO OUTFILE,然后使用LOAD DATA INFILE ...命令。

MySQL具有可能对您有用的联合存储引擎。这里有一些关于它的更多文档,http://dev.mysql.com/doc/refman/5.0/en/federated-storage-engine.html我必须承认,我用它并没有取得巨大的成功,但它可能对你有用。

第三种解决方案是在您的应用程序中完成工作。逐行读取SELECT查询的结果,并逐行向另一台服务器发送INSERT。不过,您可能会遇到一些数据类型和null处理方面的问题。

票数 11
EN

Stack Overflow用户

发布于 2009-10-09 22:20:00

在其中一台服务器上使用联邦表怎么样?基于您将在查询中使用的远程表创建联邦表,并运行查询,就好像您的数据库都是本地的一样。下面来自MySQL site的示例

使用联邦表的过程非常简单。通常,您有两个服务器在运行,要么在同一主机上,要么在不同的主机上。(联邦表可以使用由同一服务器管理的另一个表,尽管这样做没有什么意义。)

首先,您必须在远程服务器上有一个要使用联邦表访问的表。假设远程表位于联邦数据库中,其定义如下:

代码语言:javascript
复制
CREATE TABLE test_table (
    id     INT(20) NOT NULL AUTO_INCREMENT,
    name   VARCHAR(32) NOT NULL DEFAULT '',
    other  INT(20) NOT NULL DEFAULT '0',
    PRIMARY KEY  (id),
    INDEX name (name),
    INDEX other_key (other)
)
ENGINE=MyISAM 
CHARSET=latin1;

该示例使用了一个MyISAM表,但该表可以使用任何存储引擎。

接下来,在本地服务器上创建一个用于访问远程表的联邦表:

代码语言:javascript
复制
CREATE TABLE federated_table (
    id     INT(20) NOT NULL AUTO_INCREMENT,
    name   VARCHAR(32) NOT NULL DEFAULT '',
    other  INT(20) NOT NULL DEFAULT '0',
    PRIMARY KEY  (id),
    INDEX name (name),
    INDEX other_key (other)
)
ENGINE=FEDERATED
DEFAULT CHARSET=latin1
CONNECTION='mysql://fed_user@remote_host:9306/federated/test_table';

(在MySQL 5.0.13之前,使用注释而不是连接。)

票数 41
EN

Stack Overflow用户

发布于 2009-05-01 06:27:39

由于mysql客户端一次只能连接到一台服务器,因此简短的答案是否。但总有办法的..。

最新版本的mysqldump支持--where参数,该参数可用于限制转储的数据。这意味着您可以运行一个简单的SELECT (即,一个表中的所有列)并生成有效的SQL来对其进行INSERT。然后,您可以将源服务器的此类mysqldump命令的输出通过管道传输到目标服务器的mysql命令。

您可能希望在mysqldump命令中包含一些选项,如--no-create-info--no-add-locks。测试它,直到输出完全符合您的要求。

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

https://stackoverflow.com/questions/810349

复制
相关文章

相似问题

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