【问题标题】:How do I access another MySQL Database from another IP Address with PHP?如何使用 PHP 从另一个 IP 地址访问另一个 MySQL 数据库?
【发布时间】:2009-07-15 23:09:15
【问题描述】:

好吧,如果你能回答这个问题,你应该获得诺贝尔和平奖。无论如何,情况就是这样。

我正在使用 Slicehost dot net,我有 2 个切片(两个不同的 IP)。一个是我的邮件服务器,另一个是我的普通网站。我正在运行 Ubuntu(8.04 或 8.10,类似的,没关系)。我要做的是从另一个切片访问邮件服务器上的 MySQL 数据库。我正在尝试用 PHP 来做到这一点。非常感谢任何帮助。

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    mysql_connect()

    $resource = mysql_connect('other-server-address.com', 'username', 'password');
    

    第一个参数是mysql服务器地址。

    服务器参数

    MySQL 服务器。它还可以包括 一个端口号。例如“主机名:端口”或 本地套接字的路径,例如 本地主机的 ":/path/to/socket"。

    如果 PHP 指令 mysql.default_host 未定义 (默认),那么默认值为 '本地主机:3306'。在 SQL 安全模式下, 这个参数被忽略并且值 'localhost:3306' 总是被使用。

    除非我误解了...这种设置很常见。您遇到的任何问题都可能与以下有关:

    其他一些相关的 SO 问题:

    【讨论】:

    • 老兄,没门。如果这行得通,我可以吻你。谢谢一堆。一会儿我会告诉你的。
    • @lucha - 只需确保用户有权从其他主机访问数据库...
    【解决方案2】:

    假设您的邮件服务器的 IP 为 192.168.1.20,网络服务器为 192.168.1.30

    首先,您需要允许 Web 服务器访问您邮件服务器上的 mysql 数据库。 在 192.168.1.20 上运行 mysql 命令并授予对 Web 服务器所需数据库的访问权限

    mysql>  grant all on mydb.* to 'someuser'@'192.168.1.30' identified by 'secretpass;
    

    您的 PHP 代码通过以下方式连接到该数据库:

    $conn = mysql_connect('192.168.1.20', 'someuser', 'secretpass');
    

    【讨论】:

      【解决方案3】:

      mysql_connect() 如果连接成功则返回一个链接标识符。您还必须保留对这两个链接的引用。

      当您想使用哪个链接时,只需将该链接作为参数包含在内。

      $link1 = mysql_connect($host1, $username1, $password1);
      $link2 = mysql_connect($host2, $username2, $password2);
      $r = mysql_query(QUERY, $link1);
      

      就这么简单。

      【讨论】:

        猜你喜欢
        • 2021-10-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-31
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多