首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能使用'localhost‘连接到MySQL,但是使用'127.0.0.1’可以吗?

不能使用'localhost‘连接到MySQL,但是使用'127.0.0.1’可以吗?
EN

Server Fault用户
提问于 2013-10-07 00:27:46
回答 6查看 51.9K关注 0票数 13

我的/etc/host文件如下所示:

代码语言:javascript
复制
127.0.0.1 localhost

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

我在构建服务器时发现,虽然我可以成功地平分localhost,但是在某些服务配置文件中,比如Postfix、Apache和Dovecot,我需要指定127.0.0.1而不是localhost来使它们工作。

我还需要更改某些数据库驱动的网站的配置文件,这些网站使用localhost连接到MySQL。

我尝试过对hosts文件进行各种修改,但到目前为止,我所做的一切都没有起到任何作用。

服务器正在运行Ubuntu12.04.02LTS。它没有安装selinux,即使在设置IPtables默认策略以接受和刷新这些策略之后,上述情况仍然存在。

EN

回答 6

Server Fault用户

回答已采纳

发布于 2013-10-07 03:41:29

您可能检查的一件事是(这要求您登录到MySQL控制台)--检查以确保您有通过localhost登录到root的权限。

mysql -h 127.0.0.1 -u root -p

--一旦您成功登录--

代码语言:javascript
复制
mysql> select user,host from mysql.user;
+------+--------------------------------+
| user | host                           |
+------+--------------------------------+
| root | 127.0.0.1                      | 
| root | ::1                            |
| root | localhost                      | <-- Make sure you have a localhost entry for root
+------+--------------------------------+
3 rows in set (0.00 sec)

只是把它扔出去,以防万一这就是问题所在。

票数 16
EN

Server Fault用户

发布于 2013-10-07 01:29:34

大多数MySQL客户端都是奇怪的,因为如果将主机指定为localhost,则它们将其别名为套接字连接,而不是TCP连接。您的选项是要么坚持使用127.0.0.1,要么,如果客户端支持它(就像mysql二进制文件使用--protocol标志一样),强迫它使用TCP而不是unix套接字。

票数 8
EN

Server Fault用户

发布于 2013-10-07 06:04:24

需要注意的一点是,如果赠款是正确的,那么如果您使用的是MariaDB,那么在10.0.1和5.5.30版本的https://mariadb.atlassian.net/browse/MDEV-4356中有一个错误导致了这种行为。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/544187

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档