Connection refused na produkčním serveru

dinoq
Člen | 4
+
0
-

Dobrý den,
nastavil jsem si v loacal.neon databázi:

database:
	dsn: 'mysql:host=localhost;port:3306;dbname=nazevDB'
	user: uzivatel
	password: heslo

Údaji dbname, user i password jsem si jistý (pochopitelně jsem zde použil pouze zástupná jména). Váhám jak má být správně host. Na produkčním serveru by asi mělo být localhost? Web mám u zikum.cz a v úvodním emailu mi posílali že hostname k databázi je free1db.zikum.cz. localhost i to free1db.zikum.cz jsem zkoušel, ale přesto mi server hází chybu 500 v logu mám:

[2021-02-08 20-03-04] Nette\Database\ConnectionException: SQLSTATE[HY000] [2002] Connection refused #HY000 in /var/home/blue-weather.eu/vendor/nette/database/src/Database/Connection.php:68 caused by PDOException: SQLSTATE[HY000] [2002] Connection refused #2002 in /var/home/blue-weather.eu/vendor/nette/database/src/Database/Connection.php:68  @  https://blue-weather.eu/  @@  exception--2021-02-08--19-49--36a0718694.html

Ještě mi v tom mailu také posílali externí externí IP: 95...*, ale ani když tu dosadím za host, tak to nepomůže. Předpokládám že ta externí IP se použije např. pokud se budu chtít připojit z localhostu při vývoji?? Ale ani to nejde…
V Bootstrap.php pak mám normálně odkaz na local.neon:

$configurator->addConfig($appDir . '/config/local.neon');

Ještě bych chtěl poznamenat, že když do local.neon doplním údaje na localhost – xampp a spouštím to na localhostu, tak to samozřejmě funguje (localhostem myslím můj počítač).

Netušíte někdo co s tím?
Díky :)

EDIT:
Zkusil jsem se připojit k databázi z „čistého“ PHP (se stejnými hodnotami se kterými to v nette nefungovalo) a funguje to…

try {
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    // set the PDO error mode to exception
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "Connected successfully";
  } catch(PDOException $e) {
    echo "Connection failed: " . $e->getMessage();
}

Tím spíš by mě zajímalo kde může být chyba v nette…Nevěděl by někdo?

Editoval dinoq (8. 2. 2021 22:50)

Gappa
Nette Blogger | 208
+
0
-

Ahoj,

možné věci:

  • Co je v proměnné $localhost v té ukázce, která funguje?
  • Ve fungující ukázce není definován port, zatímco v té pro Nette je uveden defaultní pro MySQL – nemají ho globálně změněný a bez eho uvedení se použije právě ten jejich defaultní? Zkus ho z té Nette verze odstranit, jestli to nepomůže.
  • A teď vlastně koukám, že port tam máš ve formátu port:3306, zatímco správně to má být vlastnost=hodnota – tj. = místo :.

Takže to poslední možná bude ono :)

Pavel Kravčík
Člen | 1195
+
0
-

To určitě bude dotaz na toho poskytovatele. Jednou jsem řešil něco podobného a nefungoval zápis localhost, ale 127.0.0.1 – bude to specifikum toho hostingu. Někde se musí psát také přímo odkaz na MySQL server (tuším wedos), ty nemají na local/127 nic.

Editoval Pavel Kravčík (9. 2. 2021 10:31)

David Matějka
Moderator | 6445
+
+3
-

A ještě tu nepadla důležitá otázka: smazal si cache? :)