mysqli :: mysqli (): (HY000 / 2002): No se puede conectar al servidor MySQL local a través del socket 'MySQL' (2)

Recibo este error cuando intento conectarme a la base de datos mysql utilizando la clase php mysqli. Usando el siguiente código:

$db = new MySQLi("localhost","kamil","*****");
if (mysqli_connect_errno())
{
    echo "An error occured. Please try again later.";
    exit();
}

la contraseña es * por seguridad

He creado usuariokamil con todos los privilegios en dirección IP externa y localhost. Cuando corroselect user,host from mysql.user muestra correctamente esos dos usuarios.

Hice una investigación y usé este punto de referencia:https://stackoverflow.com/a/2183134/1839439 Para ver a qué se conecta. Resulta que solo es capaz de conectarse a127.0.0.1 y127.0.0.1:3306 que es localhost, sin embargo, cuando suministrolocalhost arroja este error.

Mi pregunta es por qué solo me permite conectarme a la base de datos utilizando la dirección IP de localhost y no el nombre o la IP externa. ¿Necesito un host diferente si quiero poder usar mysql en el sitio web o si puedo usar127.0.0.1?

EDITAR:
hosts expediente

127.0.0.1       localhost
::1             localhost ip6-localhost ip6-loopback
fe00::0         ip6-localnet
ff00::0         ip6-mcastprefix
ff02::1         ip6-allnodes
ff02::2         ip6-allrouters

127.0.1.1       raspberrypi

Resultados de la tabla de usuario de MySQL para este usuario:

| kamil            | 109.255.177.28 |
| kamil            | localhost      |

Respuestas a la pregunta(4)

Su respuesta a la pregunta