Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Baza mysql na innym serwerze
Forum PHP.pl > Forum > PHP
olo21
Witam,
czy żeby połączyć się z bazą mysql na innym serwerze wystarczy w mysql_connect zamiast localhost wpisać host na którym znajduje się baza danych?
Jak sprawdzić czy możena się zdalnie łączyć z taką bazą nie angażując w to admina?
mike
Cytat(olo21 @ 3.01.2008, 21:01:09 ) *
czy żeby połączyć się z bazą mysql na innym serwerze wystarczy w mysql_connect zamiast localhost wpisać host na którym znajduje się baza danych?
Serwer MySQL'a musi mieć ustawione akceptowanie połączeń z zewnątrz.
Cytat(olo21 @ 3.01.2008, 21:01:09 ) *
Jak sprawdzić czy możena się zdalnie łączyć z taką bazą nie angażując w to admina?
Empiryzm
olo21
tak też myślałem.
Wywala mi błąd, że brak połączenia z bazą danych.
Jeszcze taka kwestia, wyświetla taki błąd:
Kod
Warning: mysql_connect() [function.mysql-connect]: Access denied for user
nazwa_usera@tizer.dreamhost.com'@'localhost'

Dlaczego dołącza mi jeszcze to "localhost"? Może przez to?
Łączenie mam tak zrobione:
Kod
define('SQL_HOST', 'adres_hosta);
define('SQL_DB', 'baza');
define('SQL_USER', 'nazwa_usera@tizer.dreamhost.com');
define('SQL_PASS', 'jakies-haslo');
$mysql = mysql_connect(SQL_HOST, SQL_USER, SQL_PASS);
Cezar708
Cytat
define('SQL_HOST', 'adres_hosta);


... brakuje Ci apostrofu na końcu, ale to pewnie wywołałoby błąd składni.

innym problemem może być nieotwarcie portów mysql dla połączeń z zewnątrz. Domyślnie z przyczyn bezpieczeństwa porty są zamknięte dla połączeń z wewnątrz. Otwórz je (lub poproś admina) i sytuacja powinna się trochę poprawić.
olo21
Cytat(Cezar708 @ 4.01.2008, 12:41:36 ) *
... brakuje Ci apostrofu na końcu, ale to pewnie wywołałoby błąd składni.

to mój błąd jak edytowałem posta, w kodzie jest ok.
Chciałbym tylko wiedizeć, czy na 100% jest to wina serwera z b.d. że nie dopuszcza połączeń z zewnątrz.
Cezar708
ja osobiście na 100% nie jestem w stanie Ci powiedzieć, czy to jest wina nie otwartych portów. Wiem, tylko że to może być najbardziej prawdopodobna przyczyna. Rzadko ktoś udostępnia serwer bazy danych z sieci...

jeśli to się potwierdzi a administrator nie będzie chciał Ci włączyć portów to może użyjesz SOAP (np nusoap). Jest rozwiązanie gorsze (dla tego przypadku), ale jeśli nie ma innych możliwości...
webdice
W bazie danych na zdalnym hoscie masz bazę mysql, w tabeli users masz pole host, musisz zmienić wartość z:

Kod
localhost


na

Kod
%


lub na host z którego się łączysz. Jeśli nie masz root'a do bazy to bez interwencji administratora się nie obejdzie.
olo21
dzięki, nie mam uprawnień żeby zmienić pole host, ale napisałem do admina.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.