Zainstalowałem serwer MySQL na zdalnym komputerze Ubuntu. W tabeli rootdefiniujemy użytkownika w mysql.usernastę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 rootz tego samego interfejsu wiersza poleceń maszyny zdalnej przy użyciu standardowego mysqlklienta. 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 hostkolumny):
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-addressw my.cnf