Jeśli masz pełny dostęp do swojego serwera (wymagane uprawnienia roota):
Krok 1:edytuj my.cnf (zwykle znajduje się w /etc)
Znajdź następujący wiersz:[mysqld]
i upewnij się, że wiersz skip-networking
jest skomentowany (lub usuwa wiersz) i dodaje następujący wiersz:
bind-address=YOUR-SERVER-IP
Na przykład, jeśli twój adres IP serwera MySQL to 66.166.170.28, cały blok powinien wyglądać następująco:
[mysqld]
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
language = /usr/share/mysql/English
bind-address = 66.166.170.28
# skip-networking
.......
Gdzie
- adres powiązania :adres IP do powiązania.
- pomijanie sieci :W ogóle nie nasłuchuj połączeń TCP/IP. Wszelka interakcja z mysqld musi odbywać się za pośrednictwem gniazd uniksowych. Ta opcja jest wysoce zalecana w przypadku systemów, w których dozwolone są tylko żądania lokalne. Ponieważ musisz zezwolić na zdalne połączenie, ta linia powinna zostać usunięta z my.cnf lub umieszczona w stanie komentarza.
Krok 2:Przyznaj dostęp wszystkim hostom
Uruchom monitor MySQL za pomocą tego polecenia:mysql
lub /usr/local/mysql/bin/mysql
. Twój znak zachęty powłoki powinien teraz wyglądać tak:mysql>
. Uruchom to polecenie:
GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'%' IDENTIFIED BY "PASSWORD";
Gdzie:
- NAZWA UŻYTKOWNIKA to nazwa użytkownika, której używasz podczas łączenia się za pomocą skryptu php.
- HASŁO to hasło, którego używasz podczas łączenia.
Teraz musisz usunąć uprawnienia MySQL. Uruchom to polecenie:
FLUSH PRIVILEGES;
Uruchom to polecenie, aby wyjść z MySQL:
exit;
Krok 3:uruchom ponownie demona mysql
/etc/init.d/mysqld restart
lub
/etc/init.d/mysql restart
w zależności od tego, jaka dystrybucja Linuksa jest aktualnie uruchomiona na Twoim serwerze.