连接到外部mysql数据库的问题

时间:2010-10-06 23:01:37

标签: mysql mysql-error-1044

我的问题是当我尝试从服务器连接到另一台外部服务器时,此命令会产生错误:

mysql -h db.hostname.com -u username -pP@ssword database_name

这就是错误:

错误1044(42000):拒绝用户'用户名'@'%'访问数据库'database_name'

我已经要求外部服务器管理员在防火墙中添加我们的IP,但无济于事。

这是否与“用户名”

的授予权限有关

2 个答案:

答案 0 :(得分:1)

这不是防火墙的问题,因为MySQL 否认连接。正如您所怀疑的那样,为用户授予的权限存在问题。你需要在mysql服务器上执行它(如果你不想授予db的所有权限,你可能需要稍微调整一下):

GRANT ALL ON database_name.* TO 'username'@'%' IDENTIFIED BY 'P@ssword';

另请注意,如果您始终从特定主机/ IP连接,则最好指定host / ip,而不是使用通配符%,这将允许来自任何地方的连接。

答案 1 :(得分:0)

听起来密码错误,或者您尝试使用的用户名不允许从您计算机的IP地址进行连接。

如您所知,远程站点的mysql管理员可以使用任何给定的用户帐户指定允许连接的IP。请记住,在到达外部数据库之前,计算机的IP地址可能会通过公司端的各种路由器和防火墙进行路由。因此,您的IP可能与您的外部数据库不同。 在这种情况下,如果外部数据库管理员将您的IP添加到“允许”列表,则无效,他们应该添加“外部世界”IP地址。

了解这是否适用于您的最简单方法如下: 访问www.whatismyip.com并在屏幕上记下IP地址。这是从“外部世界”看到的你的知识产权。这个IP很可能实际上是公司网络中防火墙或路由器的外部IP,而不是计算机的IP。

接下来,(假设你在Windows上)转到开始>跑。输入cmd并按Enter键。输入ipconfig并按Enter键。您现在可以看到您的本地IP地址。

如果这两个IP不匹配,请告诉远程管理员将您的外部世界IP添加到“允许”列表中。

同样 - 一旦你开始制作,并将你的代码移动到另一台服务器,IP乐趣又开始了。你也可以马上解决这个问题