【问题标题】:mysql client connection hostname questionmysql客户端连接主机名问题
【发布时间】:2010-01-06 22:19:16
【问题描述】:

有一个我似乎找不到答案的问题。我正在尝试连接到远程数据库。我在我的 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 文件或其他设置?我可以更改吗?

【问题讨论】:

    标签: mysql mysql-error-1045


    【解决方案1】:

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

    【讨论】:

    • 谢谢,我想到了这一点并进行了挖掘,externalit FQDN 解析为不同的 IP。如果只是DNS输出,那我猜服务器管理员有一些工作要做......
    • @mbcook - 看到类似的问题。我的机器上没有 /etc/host 文件。还有什么其他想法可以尝试吗?
    【解决方案2】:

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

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

    直流

    【讨论】:

      【解决方案3】:

      尝试添加协议选项:

      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

      【讨论】:

      • 同一个 DNS 相关问题。
      猜你喜欢
      • 2020-01-20
      • 2014-05-25
      • 1970-01-01
      • 2010-11-19
      • 1970-01-01
      • 2023-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多