Автор Тема: Свързване към remote mysql server чрез PDO  (Прочетена 4568 пъти)

b2l

  • Напреднали
  • *****
  • Публикации: 4786
  • Distribution: MCC Interim
  • Window Manager: - // - // -
  • ...sometimes I feel like screaming... || RTFM!
    • Профил
    • WWW
Код:
Warning: PDO::__construct() [pdo.--construct]: [2002] No connection could be made because the target machine actively refused it. (trying to connect via tcp://localhost:3306)

Ето я грешката. MySQL-а е бинднат към адрес 192.168.0.100. Позволено е на моя компютър (192.168.0.111) да се свърже с него.

Ето го класа който осъществява кънекцията:
DbConnector.php
Код
GeSHi (PHP):
  1. class DbConnector
  2. {
  3.    private $connection;
  4.  
  5.    function __construct()
  6.    {
  7.        $this->open_connection();
  8.    }
  9.  
  10.    public function open_connection()
  11.    {
  12.        $dsn = 'mysql:host' . DB_SERVER . ';dbname=' . DB_NAME;
  13.        $options = array (PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8');
  14.        try
  15.        {
  16.            $this->connection = new PDO ($dsn, DB_USER, DB_PASS, $options);
  17.        }
  18.        catch (PDOException $e)
  19.        {
  20.            return $e->getMessage();
  21.            die();
  22.        }
  23.    }
  24. }

loginProcess.php
Код
GeSHi (PHP):
  1. <?php
  2.    require_once('include/DbConnector.php');
  3.  
  4.    $username = $_POST['username'];
  5.    $password = $_POST['password'];
  6.  
  7.    $login = new DbConnector();
  8.  
  9. ?>
Активен

"Човекът е въже, опънато между звяра и свръхчовека, въже над пропаст. Човекът е нещо, което трябва да бъде превъзмогнато." - Фр. Ницше

mom

  • Напреднали
  • *****
  • Публикации: 266
  • Distribution: Ubuntu
  • Window Manager: Compiz
    • Профил
Re: Свързване към remote mysql server чрез PDO
« Отговор #1 -: Nov 14, 2011, 12:51 »
Привет!
На първо четене виждам, че ти плаче, че се опитваш да се вържеш към localhost:3306, а mysql-а ти е на 192.168.0.110. Каква е стойността на DB_SERVER???
Активен

b2l

  • Напреднали
  • *****
  • Публикации: 4786
  • Distribution: MCC Interim
  • Window Manager: - // - // -
  • ...sometimes I feel like screaming... || RTFM!
    • Профил
    • WWW
Re: Свързване към remote mysql server чрез PDO
« Отговор #2 -: Nov 14, 2011, 13:13 »
Привет!
На първо четене виждам, че ти плаче, че се опитваш да се вържеш към localhost:3306, а mysql-а ти е на 192.168.0.110. Каква е стойността на DB_SERVER???

Еее не съм толкова вчерашен :).
Код
GeSHi (PHP):
  1. defined ('DB_SERVER') ? NULL : define('DB_SERVER', '192.168.0.100');
Активен

"Човекът е въже, опънато между звяра и свръхчовека, въже над пропаст. Човекът е нещо, което трябва да бъде превъзмогнато." - Фр. Ницше

mom

  • Напреднали
  • *****
  • Публикации: 266
  • Distribution: Ubuntu
  • Window Manager: Compiz
    • Профил
Re: Свързване към remote mysql server чрез PDO
« Отговор #3 -: Nov 14, 2011, 13:22 »
Знам, че не си, ама само това се виждаше :)
Има ли шанс да си я define-нал вече с нещо друго (localhost например)?
« Последна редакция: Nov 14, 2011, 13:25 от mom »
Активен

b2l

  • Напреднали
  • *****
  • Публикации: 4786
  • Distribution: MCC Interim
  • Window Manager: - // - // -
  • ...sometimes I feel like screaming... || RTFM!
    • Профил
    • WWW
Re: Свързване към remote mysql server чрез PDO
« Отговор #4 -: Nov 14, 2011, 13:28 »
Знам, че не си, ама само това се виждаше :)

Локално работи. Смисъл такъв, че искам на моя апача да си тествах скриптовете на php, но връзката ми и записите ми да идват от production базата данни, която е на сървъра.
Ето го "фаярлола" - ако може изобщо да се нарече така (правилото аз го добавих):
Код:
s1@mysql# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:mysql

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
Активен

"Човекът е въже, опънато между звяра и свръхчовека, въже над пропаст. Човекът е нещо, което трябва да бъде превъзмогнато." - Фр. Ницше

mom

  • Напреднали
  • *****
  • Публикации: 266
  • Distribution: Ubuntu
  • Window Manager: Compiz
    • Профил
Re: Свързване към remote mysql server чрез PDO
« Отговор #5 -: Nov 14, 2011, 13:37 »
Още една идея - mysql потребителя, с който се опитваш да направиш връзката, има ли права за ремоте връзка? (пак с уговорката, че не си вчерашен де) :)
Активен

b2l

  • Напреднали
  • *****
  • Публикации: 4786
  • Distribution: MCC Interim
  • Window Manager: - // - // -
  • ...sometimes I feel like screaming... || RTFM!
    • Профил
    • WWW
Re: Свързване към remote mysql server чрез PDO
« Отговор #6 -: Nov 14, 2011, 13:43 »
Хубав въпрос, само да видя дали съм разбрал правилно. За това ли ме питаш:
Код
GeSHi (SQL):
  1. mysql> SELECT * FROM user WHERE host='192.168.0.111'\G;
  2. *************************** 1. row ***************************
  3.                 Host: 192.168.0.111
  4.                 User: user
  5.             Password: *75B620842EEB4D80181718FE54922B9F0A9B31D8
  6.          Select_priv: Y
  7.          Insert_priv: Y
  8.          Update_priv: Y
  9.          Delete_priv: Y
  10.          Create_priv: Y
  11.            Drop_priv: Y
  12.          Reload_priv: Y
  13.        Shutdown_priv: Y
  14.         Process_priv: Y
  15.            File_priv: Y
  16.           Grant_priv: Y
  17.      References_priv: Y
  18.           Index_priv: Y
  19.           Alter_priv: Y
  20.         Show_db_priv: Y
  21.           Super_priv: Y
  22. Create_tmp_table_priv: Y
  23.     Lock_tables_priv: Y
  24.         Execute_priv: Y
  25.      Repl_slave_priv: Y
  26.     Repl_client_priv: Y
  27.     Create_view_priv: Y
  28.       Show_view_priv: Y
  29.  Create_routine_priv: Y
  30.   Alter_routine_priv: Y
  31.     Create_user_priv: Y
  32.           Event_priv: Y
  33.         Trigger_priv: Y
  34.             ssl_type:
  35.           ssl_cipher:
  36.          x509_issuer:
  37.         x509_subject:
  38.        max_questions: 0
  39.          max_updates: 0
  40.      max_connections: 0
  41. max_user_connections: 0
  42. 1 row IN SET (0.00 sec)
Активен

"Човекът е въже, опънато между звяра и свръхчовека, въже над пропаст. Човекът е нещо, което трябва да бъде превъзмогнато." - Фр. Ницше

mom

  • Напреднали
  • *****
  • Публикации: 266
  • Distribution: Ubuntu
  • Window Manager: Compiz
    • Профил
Re: Свързване към remote mysql server чрез PDO
« Отговор #7 -: Nov 14, 2011, 13:48 »
Баш за това те питах, ама за 192.168.0.100
Активен

b2l

  • Напреднали
  • *****
  • Публикации: 4786
  • Distribution: MCC Interim
  • Window Manager: - // - // -
  • ...sometimes I feel like screaming... || RTFM!
    • Профил
    • WWW
Re: Свързване към remote mysql server чрез PDO
« Отговор #8 -: Nov 14, 2011, 13:54 »
Код
GeSHi (SQL):
  1. mysql> SELECT * FROM user WHERE host='192.168.0.100'\G;
  2. *************************** 1. row ***************************
  3.                 Host: 192.168.0.100
  4.                 User: user
  5.             Password: *75B620842EEB4D80181718FE54922B9F0A9B31D8
  6.          Select_priv: Y
  7.          Insert_priv: Y
  8.          Update_priv: Y
  9.          Delete_priv: Y
  10.          Create_priv: Y
  11.            Drop_priv: Y
  12.          Reload_priv: Y
  13.        Shutdown_priv: Y
  14.         Process_priv: Y
  15.            File_priv: Y
  16.           Grant_priv: Y
  17.      References_priv: Y
  18.           Index_priv: Y
  19.           Alter_priv: Y
  20.         Show_db_priv: Y
  21.           Super_priv: Y
  22. Create_tmp_table_priv: Y
  23.     Lock_tables_priv: Y
  24.         Execute_priv: Y
  25.      Repl_slave_priv: Y
  26.     Repl_client_priv: Y
  27.     Create_view_priv: Y
  28.       Show_view_priv: Y
  29.  Create_routine_priv: Y
  30.   Alter_routine_priv: Y
  31.     Create_user_priv: Y
  32.           Event_priv: Y
  33.         Trigger_priv: Y
  34.             ssl_type:
  35.           ssl_cipher:
  36.          x509_issuer:
  37.         x509_subject:
  38.        max_questions: 0
  39.          max_updates: 0
  40.      max_connections: 0
  41. max_user_connections: 0
  42. 1 row IN SET (0.00 sec)

То си беше настроено за localhost, аз си добавих моето IP, и това на което бинднах MySQL-а (*.*.*.100). Нарочно са с пълни права и двата user-а защото за тия тестове не ми трябват рестрикшъни.
« Последна редакция: Nov 14, 2011, 13:56 от b2l »
Активен

"Човекът е въже, опънато между звяра и свръхчовека, въже над пропаст. Човекът е нещо, което трябва да бъде превъзмогнато." - Фр. Ницше

mom

  • Напреднали
  • *****
  • Публикации: 266
  • Distribution: Ubuntu
  • Window Manager: Compiz
    • Профил
Re: Свързване към remote mysql server чрез PDO
« Отговор #9 -: Nov 14, 2011, 13:58 »
Много съм заспал - извинявам се! Ти си си го написал още в началото, че е позволено, ама кой да разбира това, което пише! А и първата ти проверка за 111 е вярната разбира се, а не за 100!

Още веднъж сори за тъпия въпрос!
Активен

b2l

  • Напреднали
  • *****
  • Публикации: 4786
  • Distribution: MCC Interim
  • Window Manager: - // - // -
  • ...sometimes I feel like screaming... || RTFM!
    • Профил
    • WWW
Re: Свързване към remote mysql server чрез PDO
« Отговор #10 -: Nov 14, 2011, 14:00 »
Много съм заспал - извинявам се! Ти си си го написал още в началото, че е позволено, ама кой да разбира това, което пише! А и първата ти проверка за 111 е вярната разбира се, а не за 100!

Още веднъж сори за тъпия въпрос!

Те са еднакви, то няма значение. Ама се изчерпах от идеи вече. Гледам и PDO-то, че търси localhost, а аз не искам localhost. PDO-то ми вади грешка, че сървъра отказва заявки, а това не е така.
Активен

"Човекът е въже, опънато между звяра и свръхчовека, въже над пропаст. Човекът е нещо, което трябва да бъде превъзмогнато." - Фр. Ницше

b2l

  • Напреднали
  • *****
  • Публикации: 4786
  • Distribution: MCC Interim
  • Window Manager: - // - // -
  • ...sometimes I feel like screaming... || RTFM!
    • Профил
    • WWW
Re: Свързване към remote mysql server чрез PDO
« Отговор #11 -: Nov 14, 2011, 19:28 »
Код
GeSHi (PHP):
  1. $dsn = 'mysql:host' . DB_SERVER . ';dbname=' . DB_NAME;

Ето ми я грешката, изял съм едно "=" след 'mysql:host'.
Активен

"Човекът е въже, опънато между звяра и свръхчовека, въже над пропаст. Човекът е нещо, което трябва да бъде превъзмогнато." - Фр. Ницше

mom

  • Напреднали
  • *****
  • Публикации: 266
  • Distribution: Ubuntu
  • Window Manager: Compiz
    • Профил
Re: Свързване към remote mysql server чрез PDO
« Отговор #12 -: Nov 15, 2011, 10:35 »
:) И двамата сме доста окати, а :)
Активен