(HY000/2002): Normalerweise darf jede Socketadresse

Irgendwelche Probleme mit XAMPP für Windows? Dann ist hier genau der richtige Ort um nachzufragen.

(HY000/2002): Normalerweise darf jede Socketadresse

Postby ksk_bln » 11. June 2021 11:24

hallo zusammen,

ich benutze : XAMPP for Windows 7.2.12 + Windows 10 Pro

mit zunehmenden datenbankzugriff, bekomme in ltz. zeit immer häufiger diese fehlermeldungen :
obwohl ich die variable vorher abfrage und auf NULL setze

Fatal error: Uncaught PDOException: SQLSTATE[HY000] [2002] Normalerweise darf jede Socketadresse (Protokoll, Netzwerkadresse oder Anschluss) nur jeweils einmal verwendet werden.
in ....\config_tab_intern.ini:69 Stack trace:
#0 ....\config_tab_intern.ini(69): PDO->__construct('mysql:host=127....', 'aaaaa', 'xxxxx')
#1 rr_va.php(14): include('C:\\xampp\\htdocs...') ---- das ist das aufrufende script
#2 {main} thrown in .....config_tab_intern.ini on line 69


config_tab_intern.ini :

62. $host="127.0.0.1";
63.
64. if (!isset($pdo_rr))
65. {
66. $pdo_rr=NULL;
67.
68. $host_rr="mysql:host=".$host."; dbname=".$db;
69. $pdo_rr = new PDO($host, $dbuser, $dbpw );
70. }

hat jemand einen rat, ?
muß zb. die abfrag : 64. : if (!isset($pdo_rr))
anders gestellt werden ?
oder eine einstellung in my.ini angepaßt werden ?

danke schon mal für eure vorschläge !!!
ksk_bln
 
Posts: 10
Joined: 09. November 2018 08:00
XAMPP version: 1.7.3
Operating System: windows 10 64 bit

Re: (HY000/2002): Normalerweise darf jede Socketadresse

Postby Altrea » 11. June 2021 11:39

Der socket wird nicht im selben moment abgebaut, sondern nur dereferenziert. Den Abbau übernimmt dann der garbage collector, das kann ein paar sekunden dauern.

Solltest du noch weitere Dinge in variablen speichern (pdo result sets zum Beispiel) musst du auch diese null-referenzieren.
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 11926
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 11 Pro x64

Re: (HY000/2002): Normalerweise darf jede Socketadresse

Postby ksk_bln » 16. June 2021 10:15

hallo altrea,

danke für deine antwort.

meinst du, ich sollte auch allen variablen, die $pdo_rr "benutzen" auch auf NULL setzen ?

zb.
dann:
$stmt_auto=NULL;
$rows_auto=NULL;

für solch einen aufruf ?

$query_auto="select * ".
" from aaaaaa ".
" where a<1234";

$stmt_auto = $pdo_rr->query($query_auto); ;
$rows_auto = $stmt_rr->rowCount();
ksk_bln
 
Posts: 10
Joined: 09. November 2018 08:00
XAMPP version: 1.7.3
Operating System: windows 10 64 bit

Re: (HY000/2002): Normalerweise darf jede Socketadresse

Postby Altrea » 16. June 2021 11:27

Würde ich zumindest versuchen (ich selbst hatte das Problem und die Anforderung bisher nie).

Alternativ (oder Adaptiv) dazu kannst du die Connection_ID auch killen
Code: Select all
$pdo_rr->query('KILL CONNECTION_ID()');
$pdo_rr = null;
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 11926
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 11 Pro x64

Re: (HY000/2002): Normalerweise darf jede Socketadresse

Postby ksk_bln » 16. June 2021 13:03

hallo altrea,

dank nochmal für deine antwort,
ja ich habe das problem auch erst seit ein paar tagen und "leider" auch nicht immer !


und wenn ich das so programmiere :

62: if (!isset($pdo_rr))
63: {
64: $pdo_rr->query('KILL CONNECTION_ID()');
65: $pdo_rr=NULL;
66:
67: $host_db="mysql:host=".$host."; dbname=".$db;
67: $pdo_rr = new PDO($host_db, $dbuser, $dbpw );
68 :}

kommt diese fehlermeldung :
[16-Jun-2021 14:03:29 Europe/Berlin] PHP Notice: Undefined variable: pdo_rr in ...config_tab_intern.ini on line 67
[16-Jun-2021 14:03:29 Europe/Berlin] PHP Fatal error: Uncaught Error: Call to a member function query() on null in ...config_tab_intern.ini:67


und wenn ich das so programmiere :

if (isset($pdo_rr))
$pdo_rr->query('KILL CONNECTION_ID()');

if (!isset($pdo_rr))
{
$pdo_rr=NULL;

$host_db="mysql:host=".$host."; dbname=".$db;
$pdo_rr = new PDO($host_db, $dbuser, $dbpw );
}

dann bekomme ich folgende error-meldung :
[16-Jun-2021 13:51:22 Europe/Berlin] PHP Warning: PDO::query(): MySQL server has gone away in ...log_schreiben.php on line 28
[16-Jun-2021 13:51:22 Europe/Berlin] PHP Warning: PDO::query(): Error reading result set's header in ...log_schreiben.php on line 28
[16-Jun-2021 13:51:22 Europe/Berlin] PHP Fatal error: Uncaught Error: Call to a member function rowCount() on bool in ...prg_ausfuehren.php:18
ksk_bln
 
Posts: 10
Joined: 09. November 2018 08:00
XAMPP version: 1.7.3
Operating System: windows 10 64 bit

Re: (HY000/2002): Normalerweise darf jede Socketadresse

Postby Altrea » 16. June 2021 13:08

ksk_bln wrote:und wenn ich das so programmiere :

if (isset($pdo_rr))
$pdo_rr->query('KILL CONNECTION_ID()');

if (!isset($pdo_rr))
{
$pdo_rr=NULL;

$host_db="mysql:host=".$host."; dbname=".$db;
$pdo_rr = new PDO($host_db, $dbuser, $dbpw );
}

dann bekomme ich folgende error-meldung :
[16-Jun-2021 13:51:22 Europe/Berlin] PHP Warning: PDO::query(): MySQL server has gone away in ...log_schreiben.php on line 28
[16-Jun-2021 13:51:22 Europe/Berlin] PHP Warning: PDO::query(): Error reading result set's header in ...log_schreiben.php on line 28
[16-Jun-2021 13:51:22 Europe/Berlin] PHP Fatal error: Uncaught Error: Call to a member function rowCount() on bool in ...prg_ausfuehren.php:18

Was klar wird wenn man überlegt, was du vorher in deiner If Anweisung abfragst
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 11926
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 11 Pro x64


Return to XAMPP für Windows

Who is online

Users browsing this forum: No registered users and 47 guests