【问题标题】:Cakephp two databases from two different locations/domainsCakephp 来自两个不同位置/域的两个数据库
【发布时间】:2011-10-04 13:04:32
【问题描述】:

我的应用程序在一台服务器上运行。 登录功能将适用于来自另一个服务器上托管的另一个数据库的用户。 有什么方法可以连接该数据库,检查登录并在登录成功/失败后返回我的应用程序?

【问题讨论】:

    标签: cakephp cakephp-1.3


    【解决方案1】:

    我无法给出明确的测试答案,但我或许可以为您指明正确的方向。

    在 CakePHP 中,您可以设置多个数据库连接。

    在 /app/config/database.php 中,添加一个额外的数据库配置变量。例如:

    <?php
    var $userDb = array(
        'driver'      => 'mysql',
        'persistent'  => false,
        'host'        => 'example.com', // Put the hostname of the other database here
        'login'       => 'username',
        'password'    => 'password',
        'database'    => 'other_db_name'
    );
    ?>
    

    然后,在您的用户模型中,添加以下属性:

    <?php
    var $useDbConfig = 'userDb';
    ?>
    

    有了这个,所有用户模型的数据库操作都应该使用 $userDb 配置细节。

    更多信息可以在CakePHP docs找到。

    【讨论】:

    • 我试过这个,但它给出了错误,例如 Host 'comp.local.lan' is not allowed to connect to this MySQL server,或者 A connection attempt failed because the connected party didn't proper response after a一段时间,或建立连接失败,因为连接的主机没有响应。即使我将 max_execution_time 设置为 300 .....请帮助
    • 这不是您的 PHP 代码的问题。发生这种情况是因为您尝试连接的 MySQL 服务器阻止了连接。您必须更改 MySQL 服务器上的设置,以允许 CakePHP 应用程序所在的主机连接。如果您不知道如何执行此操作,则必须与服务器管理员交谈。或者,如果您是 MySQL 服务器的管理员并且不知道如何执行此操作,请在 Google 上搜索或尝试在 serverfault.com 上询问。
    • 谢谢,我在主机上进行了这些设置,GRANT ALL PRIVILEGES ON databasename.* TO usern...@192.168.1.3 IDENTIFIED BY 'password' 。感谢您的解决方案。
    猜你喜欢
    • 2013-07-30
    • 2018-04-27
    • 1970-01-01
    • 1970-01-01
    • 2014-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多