centos7数据库连接使用127.0.0.1报permission denied,使用localhost报No such file or directory

时间:2023-03-09 21:55:40
centos7数据库连接使用127.0.0.1报permission denied,使用localhost报No such file or directory

安装lamp环境后,测试数据库连接。

当host使用127.0.0.1时,报错:(HY000/2002): Permission denied。

把host换成localhost后,又报错:SQLSTATE[HY000] [2002] No such file or directory。

centos7数据库连接使用127.0.0.1报permission denied,使用localhost报No such file or directory

centos7数据库连接使用127.0.0.1报permission denied,使用localhost报No such file or directory

最后发现是因为没有关闭selinux,通常情况下载安装完CentOS7后,默认情况下SElinux是启用状态。

[root@rdo ~]# sestatus
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: enforcing
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Max kernel policy version: 28

如果要临时关闭,可以执行:

setenforce 0

此时状态如下:

[root@rdo ~]# sestatus
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: permissive
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Max kernel policy version: 28

如果要永久关闭,可以修改配置文件/etc/selinux/config,将SELINU置为disabled。

[root@rdo ~]# cat /etc/selinux/config   

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
#SELINUX=enforcing
SELINUX=disabled
# SELINUXTYPE= can take one of three two values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted

修改该配置文件也可以执行下面的命令来完成:

sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config 

修改完成后,保存重启,重启后状态如下:

[root@rdo ~]# sestatus
SELinux status: disabled

文章本人亲测有效。

文章转载:https://blog.****.net/eclothy/article/details/48265445