mysqli_connect(): (HY000/2002): Permission denied [Fixed]

Today I’m going to share the solution of mysqli_connect(): (HY000/2002): Permission denied error. Let’s see:

Table of Contents

  1. Reason
  2. Solution

Reason

This error occurs for SELinux. Security-Enhanced Linux (SELinux) is a mandatory access control (MAC) security mechanism implemented in the kernel. 

The httpd scripts by default are not allowed to connect out to the network. This would prevent a hacker from breaking into your httpd server and attacking other machines.

Solution

Apache/Nginx was not configured for external access. You need to enable the httpd_can_network_connect of SELinux. Run this command to check the state:

sudo getsebool -a | grep httpd_can_network

Run this command to enable httpd_can_network_connect on Apache/Nginx:

sudo setsebool -P httpd_can_network_connect 1

That’s it. Thanks for reading.