【问题标题】:Accessing DataBases from different servers从不同的服务器访问数据库
【发布时间】:2012-06-02 08:27:37
【问题描述】:

我在两个不同的服务器 server1 和 server2 上托管了一个网站网络。
我需要能够从 server2 上托管的站点中的 PHP 脚本访问存储在 server1 上的 MySQL 数据库中的数据。

假设用户在 server1 上的 site1 上注册,并且他的数据被插入到 server1 上的数据库中。现在,该用户将能够使用相同的注册登录到 server2 上的 site2。
这意味着 server2 上的 PHP 脚本需要访问 server1 上的 MySQL 数据库。我不想将用户数据复制到 server2 上的数据库,因为用户还可能在 site1 上编辑他或她的用户信息。

我希望能够在不编辑服务器数据的情况下共享这些数据(如http://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.html)。 到目前为止,我还没有找到一种安全的方法来实现这一点,有没有人知道如何使用 PHP(或 JavaScript,但我希望该系统适用于所有人,无论是否启用了 JS) ?

谢谢!

【问题讨论】:

    标签: php javascript html


    【解决方案1】:

    您可以通过允许您的其他服务器主机名连接到您的数据库来实现此目的。

    在 MySQL 命令提示符或 phpmyadmin 中执行查询:

    GRANT ALL ON databasename.* TO username@'ipaddress' IDENTIFIED BY 'somepassword';

    http://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.html

    【讨论】:

    • 请总结/引用相关信息并放在这里。链接中断,必须访问链接才能看到答案很烦人。
    • 感谢您的快速回答!但我不确定我现在是否可以应用这个,因为我没有直接访问我的服务器的权限......是否有一种不需要编辑服务器数据的解决方法来解决这个问题?跨度>
    【解决方案2】:

    在 server1 上,script1 如下所示:

    $host = "localhost";
    $user="dbuser";
    $pass="dbpw";
    $connection=mysql_connect($host,$user,$pass);
    

    在 server2 上,script2 看起来像:

    $host = "server1.domain.com";
    $user="dbuser";
    $pass="dbpw";
    $connection=mysql_connect($host,$user,$pass);
    

    因此,您只需输入不同的主机名即可连接。

    【讨论】:

    • 非常感谢您的快速回答!我已经尝试过了,但是出于安全原因,默认情况下禁用了对 MySQL 数据库服务器的远程访问。这样做需要首先应用@Tar 的答案。我的问题是一种解决方法——如果可能的话,不修改 MySQL 服务器数据......
    猜你喜欢
    • 2014-03-18
    • 1970-01-01
    • 2015-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多