我在共享主机上有一个使用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”
我怎么知道问题是什么,我应该如何解决?
答案 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的安装位置 - 在共享环境,云环境,家庭环境,数据中心环境等中使用不同类型的设备来保护网络,您需要更改许多设置。
这是最常检查的两个地方:
检查本地计算机上防火墙的设置 - 确保端口3306 TCP已打开。
检查位于分配了公共IP的节点上的防火墙的设置(例如,如果您的MySQL在家中运行,则家庭路由器)。您通常需要将端口转发到本地计算机。这可以是从路由器到实际硬件防火墙的任何内容。
我的回答很通用,因为我不知道您的网络配置 - 但这样做可以让您从外部连接到MySQL服务器。
最后;我不建议您打开数据库端口到世界各地。它可以被视为安全风险。 MySQL是一个非常安全的软件包,可以完成,但风险自负。