当我使用127.0.0.1作为主机连接到mysql服务器时,它无法连接
Issue : Access denied
当我使用localhost作为主机连接到mysql服务器时,它将能够连接。
“127.0.0.1”与“localhost”相同。
还有一些我读到的mysql无法
MySQL won't auto-resolve the host name
这是什么意思?
答案 0 :(得分:0)
localhost是特殊的,使用UNIX套接字而不是TCP / IP。 127.0.0.1没有得到特殊处理。
在Unix上,MySQL程序特别对待主机名localhost,其方式可能与您期望的与其他基于网络的程序相比有所不同。对于与localhost的连接,MySQL程序尝试使用Unix套接字文件连接到本地服务器。即使给出--port或-P选项指定端口号,也会发生这种情况。要确保客户端与本地服务器建立TCP / IP连接,请使用--host或-h指定主机名值127.0.0.1,或本地服务器的IP地址或名称。您还可以使用--protocol = TCP选项显式指定连接协议,即使对于localhost也是如此。
如果在使用TCP / IP时不起作用,则数据库可能无法在网络上侦听。这通常是一件好事,因为它增强了安全性(不是监听127.0.0.1会暴露任何问题,但是监听所有接口会提供更多攻击机会)。
如果您确实希望允许通过网络进行连接,请参阅skip-networking。
答案 1 :(得分:0)
为此ip分配权限然后尝试:您可以按照以下方式授予权利;
GRANT ALL PRIVILEGES ON *.* TO 'your_user'@'127.0.0.1' IDENTIFIED BY 'your_pass';
目前只有localhost拥有权限,但本地ip没有。
如果您仍然遇到问题,请分享错误,以便可以检查其他原因。
注意:根据您的要求分配权限,因为我提到所有权限只是一个例子。