Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: xampp - connect to external MySQL DB with SSH tunnel - No such file or directory
Forum PHP.pl > Forum > Serwery WWW
virgus66
Probowalem wszystkiego i wciz ten sam problem. Udalo mi sie polaczyc z baza przez workbencha, tworzac tunel ssh, ale z apacha wciaz dostaje odpowiedz:

Cytat
ERROR - Connection to DB failed: SQLSTATE[HY000] [2002] No such file or directory


User and pass 100% poprawne, co robie zle?

  1. <?php
  2. try
  3. {
  4. $pdo = new PDO('mysql:127.0.0.1:3306', 'user', 'password');
  5. $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  6. $pdo->exec('SET NAMES "utf8"');
  7. echo "Connected!";
  8. }
  9. catch (PDOException $e) {
  10. $error = 'ERROR - Connection to DB failed: ' . $e->getMessage();
  11. echo $error; exit();
  12. }
  13.  
  14. ?>
Pyton_000
$pdo = new PDO('mysql:host=127.0.0.1', 'user', 'password');
virgus66
zmienil sie tylko err

Cytat
ERROR - Connection to DB failed: SQLSTATE[HY000] [2002] Connection refused


nie trzeba podawac portu? przy polaceniu przez mysql workbench byl wymagany
Pyton_000
jeśli port jest standardowy to nie
natomiast jeśli musisz podać port to ma to wyglądać tak:

'mysql:host=127.0.0.1;port=3306'
virgus66
Wciaz zima,
Cytat
Connection refused 2002
....

Gdzies xampp tutaj to polaczenie blokuje, tylko nie wiem gdzie...
Pyton_000
Workbench Ci się łączy na tych danych?
virgus66
laczy, ale przez szyfrowany tunel ssh. Mam ustanowione to polaczenie :

ssh -L10000:127.0.0.1:10000 ucado-dev@app.ucado.co.uk

ale ja sie na polaczeniach ssh i ustalaniu portow nie znam za bardzo. Mam w konsoli otwarte to polaczenie i w przegladarce mam dostep do servera pod adresem localhost:10000, z konsoli tez mam dostep do bazy danych .....

EDIT

zmienilem host na localhost (tak jak w workbenchu) zmienil sie tylko komunikat
Cytat
[2002] No such file or directory
Pyton_000
No to skoro łączysz się na porcie 10000 to czemu podajesz 3306??
virgus66
3306 to domyslny port dla databasy, jego uzywam w polaczeniu MySQL workbencha. 10000 to port do glownego serwera
Pyton_000
to gdzie ty się chcesz połączyć w końcu? do lokalnej bazy czy zdalnej?
virgus66
do zdalnej, w workbenchu uzywam portu 3306 i sie lacze z baza danych. Juz kompletnie nie rozumiem tego, tu dziala tam nie
Pyton_000
pokaż screena
virgus66
https://ibb.co/kGsrsw



a tu polaczenie z konsoli, jak widzisz w pasku dziala na porcie 10000

https://ibb.co/h1uhzb
Pyton_000
odpal sobie tunel:

ssh -L3307:127.0.0.1:3306 ucado-dev@app.ucado.co.uk -N

i połączenie w PDO na

mysql:host=127.0.0.1;port=3307
virgus66
tunel odpalony, port w pdo zmieniony na 3307 - teraz komunikat zmienil sie na connection refused ..... i niewiele to mowi, nie wiadomo dlaczego odrzuca

Cytat
ERROR - Connection to DB failed: SQLSTATE[HY000] [2002] Connection refused


czy mozliwe ze teraz w php.ini albo pliku mysql.ini cos trzeba zmienic w portach? moze domyslnie chce dostepu przez 3306 ?
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.