Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Lokalny skrypt nie zaczytuje danych z zewnętrznej bazy.
Forum PHP.pl > Forum > Przedszkole
kopek
Napisałem stronę w PHP, do której podpięta jest baza MySQL. Strona umieszczona jest na zewnętrznym serwerze i nie ma problemu z zaczytywaniem danych z tej bazy. Przeniosłem stronę na lokalny komputer (uprzednio instalując krasnala) i PHP działa dobrze natomiast MySQL nie pobiera danych z zewnętrznej bazy. Komputer na którym jest strona ma połączenie z internetem więc zastanawiam się gdzie szukać przyczyny problemu? Zaporę AVG też próbowałem wyłączać ale to nie ona stanowi problem.
Sephirus
W bazie do której się łączysz musi znajdować się użytkownik zdefiniowany dla twojego komputer (ip lub host).

MySQL może mieć wielu użytkowników jednak każdy z nich musi mieć przypisane skąd będzie się łączył. Połączenia z innych hostów są ignorowane.
kopek
Do połączenia z bazą używam poniższej funkcji, zgodnie z tym cop napisałeś mam się zalogować na konto sql.konta.pl i tam dodać użytkownika? Nie za bardzo rozumiem czemu z każdego miejsca (dowolny zewnętrzny serwer) strona zaczytuje dane z bazy a tylko z lokalnego komputera pod krasnalem sobie z tym nie radzi.
  1. function connection() {
  2. // serwer
  3. $mysql_server = "sql.konta.pl";
  4. // admin
  5. $mysql_admin = "***";
  6. // hasło
  7. $mysql_pass = "***";
  8. // nazwa baza
  9. $mysql_db = "***";
  10. // nawiązujemy połączenie z serwerem MySQL
  11. @mysql_connect($mysql_server, $mysql_admin, $mysql_pass)
  12. or die('Brak połączenia z serwerem MySQL.');
  13. // łączymy się z bazą danych
  14. @mysql_select_db($mysql_db)
  15. or die('Błąd wyboru bazy danych.');
  16. }
toffiak
Czyli możesz połączyć się z dowolnego hosta z serwerem bazy danych tylko nie z localhostu ?
Jeśli tak to na początek nie uktywaj błędów w skrypcie. Usuń wszystkie @.

Czy host sql.konta.pl jest prawidłowy mnie przekierowuje na localhost, host musi być hostem na któym jest baza danych.
kopek
Znaki @ usunięte, jednak nie wpłynęło to w żaden sposób na działanie. Nadal nie zaczytuje rekordów z bazy. Na początku pliku mam zdeklarowane coś takiego:
  1. ini_set('display_errors', 1);
  2. require "function.php";

Połączenie z bazą wywołuję za pomocą:
  1. connection();


Host sql.konta.pl przenosi mnie do progreso.pl/sql/ ale tak to było zdefiniowane cały czas i działało a z bazą nic się nie zmieniło.

Być może w Krasnalu trzeba coś przełączyć żeby pozwalał na połączenia z zewnętrzną bazą?

Dziwi mnie, że nie wywala żadnych błędów związanych z połączeniem z bazą tak jakby wszystko było w porządku.

Okazało się, że błąd składniowy powodował zatrzymanie skryptu, jednak po jego korekcie mam taki komunikat:
Warning: mysql_connect(): Access denied for user 'xxx'@'x.x.x.x' (using password: YES) in c:\usr\krasnal\www\delegacja_new\function.php on line 39
Brak połączenia z serwerem MySQL.

Ktoś da mi jakąś wskazówkę co zrobić żeby móc się z bazą połączyć, nie za bardzo rozumiem czemu nagle nie ma dostępu skoro zmieniła się tylko lokalizacja plików a nie żadne ustawienia czy zmienne?
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.