是否可以远程访问共享主机上的mysql数据库?

时间:2015-02-12 13:07:57

标签: mysql database

我在共享主机上有一个使用MySQL数据库的网站,现在我想访问本地应用程序中的数据库。 在开始为我的应用程序编码之前,我决定使用一些查询构建器应用程序,最后我找到了DBVisualizer和Valentia Studio,但我无法连接到主机上的数据库。 这些是我做过的事情:

1. I got my web site IP by pinging the web site ( i used IP address and host name both for server name ) 
2. i added the % character in Remote Database Access Hosts .
3. from phpMyAdmin i found 3306 as MySQL port .

但我仍然无法访问数据库。 我有时间错误,在DBVisualizer中,当我使用ping服务器时,它没有响应,但是当我将它用于我的本地Web服务器(连接到MAMP)时,它响应“Server is alive”

我怎么知道问题是什么,我应该如何解决?

2 个答案:

答案 0 :(得分:1)

在大多数默认安装中,MySQL绑定到127.0.0.1 - 只允许本地连接。

如果您希望更改它(注意:这可能是一个安全问题),您需要在配置文件中更改它(通常在Linux发行版中/etc/mysql/my.cnf)。 或者在Windows中,它可能位于以下位置:

C:\Windows\my.ini C:\Windows\my.cnf C:\my.ini C:\my.cnf 
C:\Program Files\MySQL\MySQL Server 5.5\my.ini 
C:\Program Files\MySQL\MySQL Server 5.5\my.cnf

通常只需注释掉bind-address这样的行就足够了,这将允许来自所有IP的连接:

# bind-address          = 127.0.0.1

值得注意的是,大多数网站主机不允许来自任意主机的MySQL连接,并且您无法改变这一事实(您可能只能通过使用本地应用程序访问您的MySQL实例 - 在大多数情况下是phpmyadmin)。

答案 1 :(得分:-1)

不是一个简单的答案。最有可能是防火墙或端口转发相关。 根据MySQL的安装位置 - 在共享环境,云环境,家庭环境,数据中心环境等中使用不同类型的设备来保护网络,您需要更改许多设置。

这是最常检查的两个地方:

  1. 检查本地计算机上防火墙的设置 - 确保端口3306 TCP已打开。

  2. 检查位于分配了公共IP的节点上的防火墙的设置(例如,如果您的MySQL在家中运行,则家庭路由器)。您通常需要将端口转发到本地计算机。这可以是从路由器到实际硬件防火墙的任何内容。

  3. 我的回答很通用,因为我不知道您的网络配置 - 但这样做可以让您从外部连接到MySQL服务器。

    最后;我不建议您打开数据库端口到世界各地。它可以被视为安全风险。 MySQL是一个非常安全的软件包,可以完成,但风险自负。