Connection refused – Forspi

luboshilgert
Člen | 11
+
0
-

Ahoj,
nemáte někdo zkušenosti s připojením k databázi u Forpsi?
V config.product.neon mám:

database:
    dsn: 'mysql:host=a024um.forpsi.com;port:3306;dbname=dbname'
    user: username
    password: heslo
    options:
        lazy: yes

Ale dostávám stále Nette\Database\ConnectionException: SQLSTATE[HY000] [2002] Connection refused #HY000 in…

Díky za případné tipy

MajklNajt
Člen | 498
+
0
-

nepokúšaš sa pripojiť z nejakého vzdialeného servera? lebo čo ja viem, tak Forpsi má prístup k DB serverom povolený iba z ich siete…

luboshilgert
Člen | 11
+
0
-

Celý den jsem dělal na localu a právě večer jsem to nahrál k nim abych zkusit a teď tohle… Ale problém bude někde na straně připojování v Nette. Když jsem si udělal testovací skriptík. Tak se k jejich databázi připojím a vypíšu data.

$mysqli = new mysqli(HOST, USER, PASSWORD, DATABASE);

HOST používám a024um.forpsi.com. Port nikde nespecifikuji ale jeho odebrání z configu taky nepomůže…

luboshilgert
Člen | 11
+
0
-

Tak už to funguje…zapomněl jsem na takovou „maličkost“ v bootstrap.php. Snad někomu můj kiks pomůže a já si to už také budu pamatovat:D

$configurator->addConfig(__DIR__ . '/config/config.neon');
if ($configurator->isDebugMode()) {
    $configurator->addConfig(__DIR__ . '/config/config.local.neon');
} else {
    $configurator->addConfig(__DIR__ . '/config/config.product.neon');
}
MikKuba
Člen | 83
+
0
-

luboshilgert napsal(a):

Tak už to funguje…zapomněl jsem na takovou „maličkost“ v bootstrap.php. Snad někomu můj kiks pomůže a já si to už také budu pamatovat:D

$configurator->addConfig(__DIR__ . '/config/config.neon');
if ($configurator->isDebugMode()) {
    $configurator->addConfig(__DIR__ . '/config/config.local.neon');
} else {
    $configurator->addConfig(__DIR__ . '/config/config.product.neon');
}

Co bylo prosím řešením problému? To přidání config.local.neon (nebo product), jakože to tam předtím nebylo? Řeším dost možná podobný problém, kdy se na Lebeda hostingu nemohu nějak dostat do DB z Nette, taky to má povolené jen z localhostu, ale nic nefunguje.

Mám

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

kde hned v config.local.neon je definované připojení na DB:

database:
	dsn: 'mysql:host=127.0.0.1;port=33060;dbname=dbname'
	user: 'user'
	password: 'pass'
	options:
		lazy: yes

Pokud nezadám port 33060, tak se mi po půl minutě vyhodí 5040 Gateway timeout :/

Editoval MikKuba (9. 7. 2020 17:54)

luboshilgert
Člen | 11
+
0
-

Už si to přesně nepamatuji ale myslím, že jsem měl právě v tom bootstrap jen ten config.local.neon, kde bylo nastavené připojení k databázi na localhostu. Neměl jsem tam ale dané, že když je to na produkci aby si to sáhno na config.product.neon, takže i na produkci se to snažilo připojit s údaji v tom local configu

MikKuba
Člen | 83
+
0
-

luboshilgert napsal(a):

Už si to přesně nepamatuji ale myslím, že jsem měl právě v tom bootstrap jen ten config.local.neon, kde bylo nastavené připojení k databázi na localhostu. Neměl jsem tam ale dané, že když je to na produkci aby si to sáhno na config.product.neon, takže i na produkci se to snažilo připojit s údaji v tom local configu

Aha, tak to není můj problém. V config.local.neon na serveru mám nastavené správné přihlašováky k databázi :/

CZechBoY
Člen | 3608
+
0
-

Nebude problem ze nepouzivas localhost ale 127.0.0.1?

kalatalabnik
Člen | 35
+
0
-

CZechBoY napsal(a):

Nebude problem ze nepouzivas localhost ale 127.0.0.1?

localhost je 127.0.0.1, ne?

Podíval bych se do těch dalších configů. Nemáš v nich další nastavení pro DB? Záleží na pořadí a config.local.neon máš jako první.

A taky, ten port 33060 je správně? Standardní je 3306.

janpecha
Backer | 75
+
0
-

kalatalabnik napsal(a):

localhost je 127.0.0.1, ne?

Většinou to tak je, ale nemusí to platit vždy.

MikKuba
Člen | 83
+
0
-

V žádném dalším configu připojení do DB nenastavuji.
Pátráním jsem se dostal k tomu, že připojení k databázi když nechám v configu localhost, bez portu a správné přihlašováky, tak se provede, ale z nějakého důvodu se nedaří provést metoda table(). Pokud místo

$this->database->table(self::TABLE_NAME)
			->where(self::COLUMN_EMAIL, $email)

napíšu toto

$this->database->query("SELECT * FROM account WHERE email = ?", $email)

tak se tento dotaz provede.
Na serveru je verze MySQL 8, nemůže to být tím, případně dá se to nějak pro Nette 3.0 zpracovat?

CZechBoY
Člen | 3608
+
0
-

Co se stane kdyz zavolas table? Mas v databazi tabulky innodb?

David Grudl
Nette Core | 8227
+
+1
-

Piš jakou přesně to píše chybu, z „nedaří se provést“ nikdo nic nevymyslí.