mysqli :: mysqli (): (HY000 / 2002): Nie można połączyć się z lokalnym serwerem MySQL przez gniazdo „MySQL” (2)

Otrzymuję ten błąd, gdy próbuję połączyć się z bazą danych mysql przy użyciu klasy mysqli php. Używając następującego kodu:

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

hasło to * dla bezpieczeństwa.

Stworzyłem użytkownikakamil ze wszystkimi uprawnieniami do zewnętrznego adresu IP i lokalnego hosta. Kiedy biegam:select user,host from mysql.user prawidłowo wyświetla tych dwóch użytkowników.

Zrobiłem trochę badań i użyłem tego testu:https://stackoverflow.com/a/2183134/1839439 aby zobaczyć, z czym się łączy. Jak się okazuje, może się tylko połączyć127.0.0.1 i127.0.0.1:3306 który jest localhost, jednak gdy dostarczamlocalhost wyrzuca ten błąd.

Moje pytanie brzmi: dlaczego pozwala mi tylko łączyć się z bazą danych przy użyciu adresu IP hosta localhost, a nie nazwy lub zewnętrznego adresu IP. Czy potrzebuję innego hosta, jeśli chcę mieć możliwość korzystania z mysql na stronie internetowej lub jeśli mogę z niego korzystać127.0.0.1?

EDYTOWAĆ:
hosts plik

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

Wyniki tabeli użytkownika Mysql dla tego użytkownika:

| kamil            | 109.255.177.28 |
| kamil            | localhost      |

questionAnswers(4)

yourAnswerToTheQuestion