【问题标题】:unable to connect to remote mysql server from client website无法从客户端网站连接到远程 mysql 服务器
【发布时间】:2012-02-01 10:46:43
【问题描述】:

网站 A:托管在一些免费的网络主机上。

网站 B:我的服务器

我想从网站 B-(客户端)连接到网站 A-(我的服务器)的 mysql 服务器。

我已通过 % 授予 mysql 用户的远程权限。

但连接不起作用。我尝试在不同的免费网络主机上运行 php 脚本(mysql_connect)。

  • 000webhost.com:无法连接到“我的服务器 IP”上的 MySQL 服务器 (4)
  • biz.nf : 查询期间与 MySQL 服务器的连接丢失

相同的脚本不同的mysql错误。

这个 php 脚本在我的在线 SERVER 以及 localhost 设置(远程连接到 SERVER)上运行顺畅。

我还需要在我的服务器上配置什么吗?

我知道免费的网络主机不允许远程 mysql 连接,但在我的情况下,我正在尝试连接我自己的 mysql 服务器。

“远程mysql访问”是否意味着in和out connetion? 我搜索了很多,与 ip-binding 或 port 有关吗?不知道实际问题出在哪里?

请帮帮我。

【问题讨论】:

  • 也许服务器有防火墙?确保 MySQL 端口(默认:3306)对网站 A 的 IP 地址开放。

标签: php mysql


【解决方案1】:

告诉 mysql 它应该监听一个固定的 IP 地址,而不是 127.0.0.1 或 localhost。

打开文件/etc/mysql/my.cnf(或/etc/my.cnf):

之前

# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address        = 127.0.0.1

之后

# INSERT YOUR IP Address here
bind-address        = 192.168.45.1 
#bind-address=127.0.0.1

然后重启你的mysql服务器。高温

【讨论】:

    【解决方案2】:

    您的远程网站的防火墙是否允许外部连接到 MySQL 端口 3306?

    找出这一点以确保您没有打滑轮胎

    【讨论】:

    • 一般只允许访问localhost连接。因此,请咨询您的提供商并确保。
    • 是的,我同意这一点,因为几个月前我刚刚解决了这个问题,我所做的是使用“iptable”命令(我的服务器是 linux pc)为远程客户端 pc 打开端口 3306。
    • 继续使用 iptables 打开该端口。不要忘记运行 iptables-save 和 /sbin/service iptables restart 以重新加载新规则。
    • 谢谢大家,我的服务器也是基于 linux 的,但我对 linux 了解不多,我得请我的服务器管理员来做。 @Lake 你能写出你用的命令吗?
    • 太棒了.. 非常感谢你们.. 它奏效了 :D .. 我用这个。 "iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT"
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-22
    • 2017-12-10
    相关资源
    最近更新 更多