Pet*_*ite 13 mysql linux ubuntu hostname socket
我的 /etc/hosts 文件如下所示:
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
Run Code Online (Sandbox Code Playgroud)
我在构建服务器时发现,虽然我可以成功 ping localhost,但在 Postfix 和 Apache 和 Dovecot 等服务的某些配置文件中,我需要指定127.0.0.1
而不是localhost
为了使它们工作。
我还需要更改某些数据库驱动网站的配置文件,用于localhost
连接到 MySQL。
我已经尝试了对该hosts
文件的各种修改,但到目前为止我尝试过的一切都没有帮助。
服务器正在运行 Ubuntu 12.04.02 LTS。它没有安装 selinux,即使在设置 IPtables 默认策略以接受和刷新它们之后,上述情况仍然存在。
dre*_*ard 16
您可能要检查的一件事是(这需要您登录到 MySQL 控制台) - 检查以确保您有权root
通过localhost
.
mysql -h 127.0.0.1 -u root -p
-- 登录成功后 --
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)
Run Code Online (Sandbox Code Playgroud)
只是把它扔在那里,以防万一这是问题所在。
大多数 MySQL 客户端很奇怪,因为如果您将主机指定为localhost
,它们会将其别名为套接字连接而不是 TCP 连接。您的选择是坚持使用,127.0.0.1
或者,如果客户端支持它(如 mysql CLI 二进制文件对--protocol
标志的支持),则强制它使用 TCP 而不是 unix 套接字。