Zainstalowałem serwer MySQL na zdalnym komputerze Ubuntu. W tabeli root
definiujemy użytkownika w mysql.user
następujący sposób:
mysql> SELECT host, user, password FROM user WHERE user = 'root';
+------------------+------+-------------------------------------------+
| host | user | password |
+------------------+------+-------------------------------------------+
| localhost | root | *xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
| ip-10-48-110-188 | root | *xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
| 127.0.0.1 | root | *xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
| ::1 | root | *xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
+------------------+------+-------------------------------------------+
Mam dostęp z użytkownikiem root
z tego samego interfejsu wiersza poleceń maszyny zdalnej przy użyciu standardowego mysql
klienta. Teraz chcę zezwolić na dostęp do roota z każdego hosta w Internecie , więc spróbowałem dodać następujący wiersz (jest to dokładny duplikat pierwszego wiersza z poprzedniego zrzutu, z wyjątkiem host
kolumny):
mysql> SELECT host, user, password FROM user WHERE host = '%';
+------------------+------+-------------------------------------------+
| host | user | password |
+------------------+------+-------------------------------------------+
| % | root | *xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
+------------------+------+-------------------------------------------+
Ale mój klient na moim osobistym komputerze nadal mi mówi (zasłoniłem adres IP serwera):
Błąd SQL (2003): nie można połączyć się z serwerem MySQL na '46 .xxx '(10061)
Nie mogę stwierdzić, czy jest to błąd uwierzytelniania, czy błąd sieci. Na firewallu serwera włączyłem port 3306 / TCP dla 0.0.0.0/0 i to jest dla mnie ok ...
bind-address
w my.cnf