【问题标题】:Connect to Multiple Databases on Different Servers连接到不同服务器上的多个数据库
【发布时间】:2018-11-23 12:06:56
【问题描述】:

我使用 Symfony 和 Doctrine 已经有一段时间了,到目前为止,我能够通过 config.yml 配置 Doctrine 以连接到同一服务器 (IP) 上的多个数据库。

但现在我有一个不同的场景。

我正在处理一个案例,该案例有多个项目在不同的 IP 地址上运行。我可以连接在也托管主应用程序的机器上本地运行的数据库,但现在我需要连接到托管在另一台服务器上的另一个数据库。所以,要列出这个案例:

  • 服务器阿尔法。 IP:193.15.15.15,数据库名称:“Foo”
  • 服务器测试版。 IP:193.15.15.16,数据库名称:“酒吧”

我已经在我的 parameters.yml 中为每个数据库定义了用户和密码,所以这没什么大不了的。我只是想知道是否可以连接到服务器 Beta 上的(本地托管)数据库,而应用程序位于服务器 Alpha 上。

提前致谢!

【问题讨论】:

    标签: php database symfony doctrine


    【解决方案1】:

    您应该配置多个实体管理器和连接
    在文件 config.yml 上:

    doctrine:
         dbal:
             default_connection: default
             connections:
                default:
                    driver:   pdo_mysql
                    host:     '193.15.15.15'
                    port:     '%port_parameter_for_foo%'
                    dbname:   'Foo'
                    user:     '%user_parameter_for_foo%'
                    password: '%pass_parameter_for_foo%'
                    charset:  UTF8
                customer:
                    driver:   pdo_mysql
                    host:     '193.15.15.16'
                    port:     '%port_parameter_for_bar%'
                    dbname:   'Bar'
                    user:     '%user_parameter_for_bar%'
                    password: '%pass_parameter_for_bar%'
                    charset:  UTF8
    
        orm:
            default_entity_manager: default
            entity_managers:
                default:
                    connection: default
                    mappings:
                        BundleOnAlpha:  ~
                customer:
                    connection: beta
                    mappings:
                        BundleOnBeta: ~
    

    文档更完整: https://symfony.com/doc/3.4/doctrine/multiple_entity_managers.html

    【讨论】:

    • 这是我目前拥有的几个不同捆绑包中的数据库。但它们在同一台服务器上。该文档没有说明连接到不同服务器上的数据库。
    • 您可以为每个连接设置不同的“主机”值,只需将其设置为运行数据库的服务器的IP即可。在该服务器上,您必须确保允许从其他主机连接到 mysql 服务器,默认情况下它将只侦听 localhost。
    猜你喜欢
    • 1970-01-01
    • 2017-02-26
    • 1970-01-01
    • 2013-02-14
    • 2014-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-17
    相关资源
    最近更新 更多