着名的“@localhost”连接问题mysql和dbVisualizer

时间:2014-04-22 23:31:00

标签: mysql dbvisualizer

连接到mysql和@localhost似乎是一个众所周知的问题:

连接时间:

mysql -uadmin2 -p

在(重复@localhost)

时不连接
$ mysql -uadmin2@localhost -p
Enter password: 
ERROR 1045 (28000): Access denied for user 'admin2@localhost'@'localhost' (using password: YES)

下面是特定用户的mysql.user。

mysql> select * from mysql.user where user='admin2'\G
*************************** 1. row ***************************
                  Host: localhost
                  User: admin2
              Password: *ECED01ACC1794471BCD067ECFEF085F99EDBFA23
           Select_priv: Y
           Insert_priv: Y
           Update_priv: Y
           Delete_priv: Y
           Create_priv: Y
             Drop_priv: Y
           Reload_priv: Y
         Shutdown_priv: Y
          Process_priv: Y
             File_priv: Y
            Grant_priv: Y
       References_priv: Y
            Index_priv: Y
            Alter_priv: Y
          Show_db_priv: Y
            Super_priv: Y
 Create_tmp_table_priv: Y
      Lock_tables_priv: Y
          Execute_priv: Y
       Repl_slave_priv: Y
      Repl_client_priv: Y
      Create_view_priv: Y
        Show_view_priv: Y
   Create_routine_priv: Y
    Alter_routine_priv: Y
      Create_user_priv: Y
            Event_priv: Y
          Trigger_priv: Y
Create_tablespace_priv: Y
              ssl_type: 
            ssl_cipher: 
           x509_issuer: 
          x509_subject: 
         max_questions: 0
           max_updates: 0
       max_connections: 0
  max_user_connections: 0
                plugin: 
 authentication_string: 
1 row in set (0.00 sec)

显示来自dbVisualizer的错误的屏幕截图:

dbVisualizer connection info

我尝试了在他们的论坛上推荐的内容,这是其他人抱怨相同的

grant all privileges on *.* to 'admin3'@'%' identified by 'mypass' with grant option;

但为他们工作但不是我!

FWIW它的MAMP运行版本5.5.33的mysql。 我已经刷新了权限,尝试使用ip地址,左侧字段为空(如截图所示),查看类似的解决方案here,现在已经没有想法了。

任何人都有任何进一步的建议,那么我将非常感激。

由于

凯文

1 个答案:

答案 0 :(得分:1)

重复的用户名不是有用的信息,您只是无法在命令行设置用户主机名,而不是它的工作方式。它是根据您要连接的主机名设置的。这是有道理的,您不希望我尝试通过互联网从我的计算机连接到您的服务器' admin2 @ localhost'进去。

可能有一件事情是MySQL有不同的权限通过localhost(通过本地计算机上的套接字文件完成)与127.0.0.1(通过网络通过TCP完成)进行连接,你可以除了localhost之外,我必须为%的用户明确添加权限(我的回忆有模糊):

grant all privileges on *.* to 'admin3'@'localhost' identified by 'mypass' with grant option;

此外,我刚刚注意到您正在向admin3授予权限,但尝试使用admin2登录 - 如果这是您在现实中所做的事情,那么您肯定会遇到问题。< / p>

其他想法:admin2是否拥有您尝试连接的数据库的权限?我注意到你使用的是非标准端口(8889),但未在命令行连接中指定(尽管它可能在某些配置文件中),但事实上你正在获取&# 34;访问被拒绝&#34;而不是无法连接表明这不是问题。

仔细检查密码,查看日志,尝试其他客户,但这不是任何着名的&#34;问题我没想到。

有关localhost与127.0.0.1的详细信息,请参阅this SO question