2011-06-18 20 views
5

Właśnie pobrałem program MySQL Workbench.Łączenie środowiska roboczego MySQL z moim zdalnym serwerem

Ale nie bardzo rozumiem, jak zsynchronizować to z bazami danych na moim serwerze zdalnym.

Stół roboczy prosi o podanie "nazwy hosta", więc podałem nazwę hosta mojego zdalnego serwera. Wyznaczam port 3306.

Następnie podam nazwę użytkownika. To jest nazwa użytkownika, którego używam, kiedy loguję się do PhpAdmin - czy powinienem używać innego?

Następnie podaję hasło, ponownie takie samo, którego używam do PhpAdmin.

Ale to nie działa.

dziwne, błąd zawsze mówi mi moja nazwa użytkownika to: [email protected]_network_im_using_to_access_the_internet

Ale to nie wydaje się słuszne - na phpAdmin moją nazwę użytkownika mówi [email protected].

Nie jestem do końca pewien, co robić.

Czy możesz mi pomóc?

Odpowiedz

13

MySQL traktuje logowanie jako specyficzne dla hosta, z którego pochodzą. Możesz mieć inne hasło z komputera domowego niż to, którego używasz na samym serwerze, i możesz mieć zupełnie różne zestawy uprawnień nadane tej samej nazwie użytkownika z różnych hostów początkowych.

W PHPMyadmin baza danych działa na tym samym serwerze, co serwer WWW, a zatem odnosi się do siebie jako localhost, z IP 127.0.0.1. Twoja maszyna, na której jest zainstalowany Workbench, musi uzyskać dostęp do MySQL z różnymi danymi uwierzytelniającymi niż twój [email protected]. Serwer wymaga przyznania dostępu do Twojej nazwy użytkownika z dowolnego hosta, z którego zamierzasz się połączyć.

w phpMyAdmin, trzeba przyznać dostęp do bazy danych ze zdalnego hosta: (Patrz również odpowiedź Pekka za sposób, aby umożliwić połączenia z dowolnego hosta)

GRANT ALL PRIVILEGES on dbname.* TO [email protected]_remote_hostname IDENTIFIED BY 'yourpassword'; 

aby wyświetlić wszystkie udziela obecnie mamy na localhost tak, że można powielać je do zdalnego hosta:

SHOW GRANTS FOR [email protected]; 

Dodatkowo, serwer MySQL musi być ustawiony tak, aby akceptować zdalnych połączeń w pierwszej kolejności. Nie zawsze tak jest, szczególnie na platformach hostingowych. W pliku my.cnf, linia skip-networking musi zostać usunięta lub skomentowana.Jeśli nie ma skip-networking linia należy zakomentować linię:

bind-address = 127.0.0.1 

... następnie uruchom ponownie MySQL.

+0

Bardzo pomocny Michael - obecnie mój serwer nie pozwala mi wykonywać poleceń, które mi dałeś. Myślę, że może tak być, ponieważ, jak powiedziałeś, serwer MySQL nie jest skonfigurowany do akceptowania połączeń zdalnych. Jednakże przeszukałem mojego dyrektora serwera pod kątem "my.cnf" i nie mogę go znaleźć. Czy moja firma hostingowa mogłaby powstrzymać to ode mnie? – Jeff

+0

@Jeff Tak, obawiam się, że będziesz musiał skontaktować się z firmą hostingową, aby dowiedzieć się, czy zezwala na zdalne połączenia mysql. Myślę, że niestety nie jest im na to pozwolić. –

+0

@MichaelBerkowski skomentował adres powiązania i zobaczyłem dokumentację stwierdzającą, że musi to być serwer I.P. adres, choć nie jestem pewien, co można zrobić, gdy i.p. nie jest statyczny. –

1

Twój phpMyAdmin wydaje się działać na tym samym serwerze, co sama baza danych.

Dlatego może użyć [email protected] do połączenia z serwerem.

Będziesz musiał dokonać połączenia mySQL z zewnątrz hosta lokalnego przez dodanie innego użytkownika [email protected]% (% co oznacza "dowolny host").

Pamiętaj jednak, że nie jest to dobrą praktyką - jeśli masz statyczny adres IP, zastanów się nad ograniczeniem dostępu do tego adresu.

+1

Po prostu zapamiętaj, nie zapomnij sprawdzić paramów 'bind-address' w twoim my.cnf, domyślnie serwer akceptuje tylko połączenia w lokalnym hoście. – sahid