2013-04-29 16 views

Odpowiedz

257

W celu podłączenia zdalnie musisz mieć port wiązania 3306 MySQL do adresu IP twojego komputera w pliku my.cnf. Następnie musisz utworzyć użytkownika zarówno w localhost, jak i wieloznacznym "%" i nadać uprawnienia wszystkim DB jako takim . Patrz poniżej:

my.cnf (my.ini Windows)

#Replace xxx with your IP Address 
bind-address  = xxx.xxx.xxx.xxx 

następnie

CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypass'; 
CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypass'; 

Następnie

GRANT ALL ON *.* TO 'myuser'@'localhost'; 
GRANT ALL ON *.* TO 'myuser'@'%'; 

W zależności od używanego systemu operacyjnego może trzeba otworzyć port 3306, aby umożliwić połączenia zdalne.

+0

Pomogło mi to w korzystaniu z prywatnej instancji MySQL WebFaction. Postępowałem zgodnie z twoimi krokami CREATE USER i GRANT ALL, ustaw 'mysql.default_port = ' w moim php.ini, a następnie użyłem '127.0.0.1' w całej mojej nazwie hosta db – spex

+0

Bardzo przydatna. Tylko komentarz. my.cnf może zawierać inny plik konfiguracyjny, więc odpowiednia linia może znajdować się gdzie indziej. W pliku my.cnf dla linii zaczynającej się od! Include, jeśli adres-powiązania nie znajduje się w pliku my.cnf, może on znajdować się w dołączonym pliku. – Joan

+0

Gdzie jest plik my.cnf? –

8

dla jakiego DB jest użytkownikiem? spojrzeć na ten przykład

mysql> create database databasename; 
Query OK, 1 row affected (0.00 sec) 
mysql> grant all on databasename.* to [email protected] identified by 'password'; 
Query OK, 0 rows affected (0.00 sec) 
mysql> flush privileges; 
Query OK, 0 rows affected (0.00 sec) 

tak aby powrócić do was wątpliwość „%” operator oznacza wszystkie komputery w sieci.

jak pokazuje aspesa Jestem również pewien, że musisz stworzyć lub zaktualizować użytkownika. szukać wszystkich mysql użytkowników:

SELECT user,password,host FROM user; 

jak najszybciej dostać twój użytkownik skonfigurować powinieneś być w stanie połączyć tak:

mysql -h localhost -u gmeier -p 

nadzieję, że pomoże

+0

ogólnie, dla wszystkich db. Po prostu chcę się połączyć, a nie wybrać DB. 'code'mysql_connect ('localhost: 3306', 'user', 'password'); 'kod' – user2333586

+0

z którym systemem operacyjnym jesteś, Windows, Linux? – apesa

+0

Windows. serwer wampirów. – user2333586

7

Postępuj zgodnie z instrukcjami (kroki 1 do 3 nie wymagają w Windows):

  1. Znajdź mysql config do edycji:

    /etc/mysql/my.cnf (MySQL 5.5)

    /etc/mysql/conf.d/mysql.cnf (MySQL 5.6+)

  2. Find bind-address=127.0.0.1 zmiany w pliku config bind-address=0.0.0.0 (można ustawić powiązania adresu do jednego z adresów IP interfejsu lub jak ja używać 0.0.0.0)

  3. Uruchom ponownie uruchomić usługę MySQL na konsoli: service restart mysql

  4. Tworzenie użytkownikowi bezpieczne hasło do zdalnego połączenia.W tym celu należy uruchomić następujące polecenie w mysql (jeśli linux użytkownikowi dotrzeć mysql Uruchom konsolę mysql a jeśli ustawić hasło dla głównego biegu mysql -p):

    GRANT ALL PRIVILEGES 
    ON *.* TO 'remote'@'%' 
    IDENTIFIED BY 'safe_password' 
    WITH GRANT OPTION;` 
    

Teraz trzeba mieć użytkownika z nazwą user i hasło safe_password z możliwością zdalnego połączenia.

+2

zmień adres bindowania = 0.0.0.0 ... który działał dla mnie. i nadawać uprawnienia – zwitterion

Powiązane problemy