Portál AbcLinuxu, 14. května 2025 08:15
$hostName="localhost" ; $userName="root" ; $password="" ; $databaseName = "prace" ;v /etc/hosts
127.0.0.1 localhost 127.0.1.1 jkl 192.168.0.7 hal 192.168.0.107 jklDatabáze běží na stroji jkl. Heslo v databázi je prázdné. V čem by mohla být chyba? U PHP 5 vše běželo normálně (mysql_connect)
Řešení dotazu:
$hostName="localhost"
když DB běží na jkl
. A taky máš jkl v hosts souboru dvakrát, ale to bude asi omyl při kopírování.
V některých ovladačích MySQL znamenalo "localhost" ve skutečnosti unixový socket /var/run/mysql/mysqld.sock
. Pokud jsi chtěl skutečně TCP na loopback, musel jsi napsat 127.0.0.1.
je možné dlouhodobě udržovat starší verzi?Podpora Debianu 8 na „normálních architekturách“ je do června 2020.
V debian.org je k dispozici verze 6, co jsem vidělTak v archivu jsou všechny verze, ale od verze 7 níž už nedostávají bezpečnostní aktualizace.
mysql_*()
jako wrapper na mysqli_*()
a nemusíš v aplikaci nic měnit.
CREATE USER 'bbb'@'localhost' IDENTIFIED VIA unix_socket USING '***'
ale Váš skript předpokládá, že uživatel který se přihlašuje do databáze je vytvořen takto CREATE USER 'bbb'@'localhost' IDENTIFIED VIA mysql_native_password USING '***'
Takže buď si upravte svého uživatele ALTER USER 'bbb'@'localhost' IDENTIFIED WITH mysql_native_password BY '***'
tohle si troufám odhadnout že v debianu nepůjde a hodi syntax error, takže přímo upravit tabulku mysql.user třeba: UPDATE mysql.user SET plugin = 'mysql_native_password' WHERE user = 'bbb' AND host = 'localhost'
samozřejmně reload privilegest,...
nebo si upravte svůj php kód tedy něco jako $hostName="/tmp/mysql.socket";
je nutné upravit cestu podle nastavení Vašeho mysql serveru.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.