两个不同服务器之间的数据库关系

Posted

技术标签:

【中文标题】两个不同服务器之间的数据库关系【英文标题】:database relation between two different server 【发布时间】:2020-01-28 07:33:22 【问题描述】:

我有两台服务器,它们都包含几个表。其中许多包含关系。现在我需要加入这些表并获取数据。我不知道如何编写这种查询。目前,我在 Laravel 工作。任何建议都会对我有所帮助。

提前致谢。

【问题讨论】:

【参考方案1】:

如果您想使用模型关系,您可以在模型中添加 connectiontable 字段;

class User extends Model 
    public $connection = 'firstconnection';
    public $table = 'users';
    ...

    public function comments() 
        return $this->hasMany(Comment::class);
    



class Comment extends Model 
    public $connection = 'secondconnection';
    public $table = 'comments';
    ...

您可以在config/database.php 中定义连接,默认连接是mysql

如果您编写原始查询,您可以使用完整的表路径(指定数据库):

SELECT * FROM db1.users JOIN db2.comments ON db1.users.id = db2.comments.user_id;

注意:您必须对两个表都拥有足够的权限才能连接和选择数据。如果你使用exists,has或类似ORM需要连接两个表的东西。

希望对你有帮助

【讨论】:

以上是关于两个不同服务器之间的数据库关系的主要内容,如果未能解决你的问题,请参考以下文章

两台服务器部署相同的平台系统,这两台服务器之间可能得关系是啥?

通过 REST 在两个不同服务器上的两个数据库之间接收数据

我们如何在两个不同的服务之间共享数据

怎么在一个 mysql 服务的两个不同数据库 database或者是表 之间作同步

两个不同的林根域之间如何建立信任关系

在 2 种不同类型的数据库之间共享 1 个表