6

有一个我似乎找不到答案的问题。我正在尝试连接到远程数据库。我在我的 Ubuntu shell 中输入以下内容:

mysql -u test -h mysql.domain.com -p

mysql 询问我的密码,然后输出以下内容:

ERROR 1045 (28000): Access denied for user 'test'@'externalit.domain.com' (using password: YES)

问题是我不在externalit上。我在一个完全不同的主机上。我认为我所在的服务器是从 externalit 克隆的,但我没有设置服务器。我的问题:mysql 是否有可能自动输入错误主机名的 conf 文件或其他设置?我可以改变这个吗?

4

3 回答 3

3

这是服务器认为与您的 IP 地址相关的名称。它可以用于 DNS 设置(它正在尝试反向 DNS),或者 /etc/host 文件中的某些内容(将该 IP 映射到该主机)。

于 2010-01-06T22:23:38.827 回答
2

您需要确保您连接的机器上的反向 DNS 与用户的地址匹配。如果您使用共享 IP 或无法控制反向 DNS,则将用户的权限更改为 'test'@'%' 这将允许来自任何 IP 地址的任何人连接,只要他们拥有正确的用户名/密码对. 当然,这会带来一些安全问题。

您可以阻止 mysql 进行反向查找,然后使用 'test'@'123.123.123' 作为用户/主机,但除非您使用可能导致问题的固定 IP。

直流

于 2010-01-07T03:13:09.757 回答
0

尝试添加协议选项:

mysql -u test -h mysql.domain.com --protocol=tcp -p

和/或尝试显式添加端口:

mysql -u test -h mysql.domain.com -P3306 --protocol=tcp -p

(见:http ://dev.mysql.com/doc/refman/5.1/en/mysql-command-options.html#option_mysql_protocol )

于 2010-01-06T22:23:20.387 回答