【问题标题】:mysql connection from a different domain来自不同域的mysql连接
【发布时间】:2012-07-22 16:21:12
【问题描述】:

我有网站example.com,它包含一个 MySQL 服务器。我有另一个example.org,两者都是不同的域。我想从example.org 访问example.com 上的MySQL 服务器。怎么可能?

【问题讨论】:

  • 只是一种解决方法,尝试从域b调用域a上的页面,并在该页面上对域a中的mysql进行所有处理
  • 不同的域不一定在不同的服务器上,如果它们都在同一台服务器上(使用 mysql),你根本不需要做任何事情——在你使用的任何一个域的脚本中localhost.

标签: php mysql cross-domain


【解决方案1】:

调用数据库连接初始化函数时需要设置远程example.com。例如:

mysqli_connect("example.com", 'username', 'password', 'database name');

但是您需要检查example.com 的 MySQL 服务器是否设置为接受来自其他主机的连接(请参阅 my.cnfmy.ini 中的 bind-address 指令),以及 username 您连接方式设置为能够从外部域连接。

考虑以下 phpMyAdmin 的 Users 页面:

很明显,只有用户 test 可以从外部域访问(%Host 字段中)。图中未显示,但用户 test 对名为 test 的数据库具有完全权限。其他用户绑定到本地域,即使服务器设置为接受来自外部的连接,但在进行身份验证时,用户会被拒绝。

【讨论】:

    【解决方案2】:

    只要设置了远程连接,您就可以连接到任何 MySQL 服务器。

    根据您选择的操作系统和网络服务器,设置会有所不同,但一个好的起点是(如果使用 linux)看这里:

    /etc/mysql/my.cnf
    

    在这个文件中你会发现:

    bind-address: 127.0.0.1
    

    您将其更改为服务器的 IP 地址,然后重新启动 mysql 守护进程。

    ..现在你可以远程连接了 ;)

    【讨论】:

      【解决方案3】:

      您可以连接到远程 MySQL 服务器。只需确保远程服务器绑定到公共地址即可。

      方法如下:http://www.howtogeek.com/howto/mysql/switch-mysql-to-listen-on-tcp/

      【讨论】:

        猜你喜欢
        • 2013-09-24
        • 2012-12-10
        • 1970-01-01
        • 2021-05-08
        • 2013-01-22
        • 2015-08-01
        • 2017-06-12
        • 1970-01-01
        相关资源
        最近更新 更多