Connection refused na produkčním serveru
- dinoq
- Člen | 4
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
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ýtvlastnost=hodnota
– tj.=
místo:
.
Takže to poslední možná bude ono :)
- Pavel Kravčík
- Člen | 1195
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)