2010-01-17 25 views
5

Próbuję połączyć się z moją bazą danych MySQL na moim serwerze online przez PHP na moim localhost.Połącz się z internetową bazą danych MySQL z localhost

$con = mysql_connect("$hostname", "$username", "$password"); 
if (!$con) {die('Could not connect: ' . mysql_error());} 
mysql_select_db($databasename, $con); 

Po przesłaniu skryptu do serwera łączy się z bazą danych. Jednak po załadowaniu skryptu na mój localhost nie połączy się z bazą danych online. Zamknąłem zaporę, aby się upewnić, że jej nie blokuje.

Czy połączenie powyżej jest poprawnie sformatowane, aby to zrobić? Jakieś inne sugestie?

+0

Czy mysql_error() zgłoś błąd przy próbie połączenia na localhost? –

+0

Nie można połączyć się z serwerem MySQL na "(tu był host mysql)" (10060) – Mark

+0

To jest zdecydowanie chronione zaporą ogniową po stronie serwera. –

Odpowiedz

7

Twój serwer MySQL musi mieć podany adres IP (lub % jako dzika karta) w dozwolonych hostach.

2

Czy host pozwala na to? Wielu nie pozwala połączyć się z zewnętrznymi klientami.

2

Jak mówią inni, musisz zezwolić temu konkretnemu hostowi (w tym przypadku twojemu IP) na połączenie. Jest to w twojej tabeli user w bazie danych mysql. Jeśli nie masz dostępu do tej bazy danych (lub nie masz uprawnień do nadawania), nie możesz tego zmienić.

2

Twój kod jest w porządku.

Jak stwierdzili inni, serwer MySQL musi zezwalać na połączenia ze zdalnych komputerów. Upewnij się również, że firewall twojego dostawcy nie blokuje żądania i dwukrotnie sprawdź nazwę hosta, ponieważ może on różnić się od tego, którego używasz na swoim serwerze.

Jeśli serwer nie został skonfigurowany samodzielnie, prawdopodobnie będziesz musiał porozmawiać z obsługą klienta hosta, ponieważ ma on uprawnienia do zmiany ustawień i dokładniejsze informacje na ten temat.

Powiązane problemy