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 |