Page 1 of 1

mysql Problem PDOException: verbindung refused

Posted: Fri 24. Feb 2017, 15:34
by mazzeV
Hi,

ich habe gerae versucht runalyze lokal zu installieren.

es gibt aber ein Problem mit der mysqlverbindung:

Code: Select all

Warning: date_default_timezone_get(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /var/www/localhost/runalyze/vendor/monolog/monolog/src/Monolog/Logger.php on line 311

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2002] Verbindungsaufbau abgelehnt' in /var/www/localhost/runalyze/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:43 Stack trace: #0 /var/www/localhost/runalyze/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php(43): PDO->__construct('mysql:host=127....', 'runalyze', 'runalyze', Array) #1 /var/www/localhost/runalyze/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOMySql/Driver.php(45): Doctrine\DBAL\Driver\PDOConnection->__construct('mysql:host=127....', 'runalyze', 'runalyze', Array) #2 /var/www/localhost/runalyze/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(360): Doctrine\DBAL\Driver\PDOMySql\Driver->connect(Array, 'runalyze', 'runalyze', Array) #3 /var/www/localhost/runalyze/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(429): Doctrine\DBAL\Connection->connect() #4 /var/www/localhost/runalyze/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(389): Doctrine\DBAL\Connection->getDatabasePlatformVe in /var/www/localhost/runalyze/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php on line 103
meine config. yaml sollte so passen:

Code: Select all

parameters:
  locale: de
  database_host: localhost
  database_prefix: runalyze_
  database_port: 3306
  database_name: runalyze
  database_user: runalyze
  database_password: runalyze
  secret: please_change_this_secret
  update_disabled: no
  user_can_register: true
  user_disable_account_activation: false
  maintenance: false
  garmin_api_key:
  openweathermap_api_key:
  darksky_api_key:
  nokia_here_appid:
  nokia_here_token:
  geonames_username:
  perl_path: /usr/bin/perl
  ttbin_path: ../call/perl/ttbincnv
  sqlite_mod_spatialite: libspatialite.so.5
  mail_sender:
  mail_name:
  smtp_host: localhost
  smtp_port: 25
  smtp_security:
  smtp_username:
  smtp_password:
~                            
den entsprechenden user (runalyze) hab ich nagelegt und er hat auch alle Rechte auf der db runalyze.

Habt ihr eine Idee wo es da hakt?

Danke und Grüße
Matthias

Re: mysql Problem PDOException: verbindung refused

Posted: Fri 3. Mar 2017, 09:26
by pete13
Hi,
also du könntest mal schauen ob es hilft localhost mit der IP 127.0.0.1 zu ersetzen. Es kann gut sein, dass deine Datenbank Anfragen die mit localhost kommen nicht annimmt.
Je nach deiner Datenbankkonfiguration.
Das fällt mir spontan auf wenn ich das mit meiner funktionierenden Version vergleiche.

Re: mysql Problem PDOException: verbindung refused

Posted: Mon 6. Mar 2017, 09:08
by mazzeV
127.0.0.1 macht auch keinen Unterschied, ich hab den user "runalyze" auch testweise von allen hosts freigeschaltet im mysql.

Für PHP hab ich alle scheinbar benötigten Module nachinstalliert. Das ganze läuft unter Linux (Gentoo).

Re: mysql Problem PDOException: verbindung refused

Posted: Mon 6. Mar 2017, 09:38
by mazzeV
Ich konnte das Problem nun lösen :-)

Mir fiel auf, dass diese Funktion /var/www/localhost/runalyze/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(360) scheinbar immer "127.0.0.1" als host verwendet, unabhängig was in meiner config.yml eingestellt ist. Ich denke das ist ein BUG in runalyze.

Code: Select all

 #1 /var/www/localhost/runalyze/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOMySql/Driver.php(45): Doctrine\DBAL\Driver\PDOConnection->__construct('mysql:host=127....', 'runalyze', 'runalyze', Array) 
Ich hab dann testweise :

Code: Select all

$this->_params['host'] : "localhost";
in /var/www/localhost/runalyze/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php eingefügt und nun geht es :-)
warum mein mySQL server nur auf localhost aber nicht auf 127.0.0.1 hört muss ich noch herausfinden, dann kann ich das wieder rausnahmen.
Aber es lässt sich reproduzieren:

Code: Select all

matthias ~ $ mysql --host 127.0.0.1 --port 3306 -u runalyze -p
Enter password: 
ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (111)

Code: Select all

matthias ~ $ mysql --host localhost --port 3306 -u runalyze -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
strange :?

Re: mysql Problem PDOException: verbindung refused

Posted: Mon 6. Mar 2017, 09:54
by laufhannes
Hast du nach dem Ändern der data/config.yml jeweils den Cache (unter var/cache/*) geleert? Die Konfigurationsdatei wird gecacht und bei Änderungen nicht automatisch neu gelesen.

Siehe auch: https://docs.runalyze.com/en/latest/con ... figuration
You need to clear your cache (var/cache/prod/ in general) for the changes to take effect.