Anfängerproblem: max_user_connections

swunder

Neuer Benutzer
Beiträge
1
Hallo Leute,

ich bin neu in der Welt von PHP Programierung und MySQL. Ich schreibe gerade in Vue eine kleine einfache Anwendung wo ich Daten aus MySQL lese und darstelle. Das klappt soweit sehr gut. Ich habe nur ein Riesen Problem und zwar max_user_connections, die schnell erreicht sind und dann ist der Zugriff auf MySQL nicht mehr möglich.

Es geht ja darum, dass wenn z.B. ein User sich nun auf der Website registriert, dann baut die Webseite eine Verbindung zur Datenbank auf und schreibt dort eine Information über die Registrierungsdaten hinein. Sobald dies dann abgeschlossen ist wird die Datenbankverbindung wieder unterbrochen, somit sollte nach meinem Verständinss max_user_connections wieder freigegeben werden. Somit sollte jede Datenbankverbindung nach Fertigstellung wieder unterbrochen werden, so kann danach wieder eine neue Datenbankverbindung aufgebaut werden. Sollte die Webseite die Verbindung dauerhaft aufrecht erhalten so dürfen natürlich nicht andauernd neue Verbindungen aufgebaut werden sondern es muss dies bestehende genutzt werden, denn sonst hätte die Website irgendwann zig offene Verbindungen zur Datenbank, was dann wiederrum den Datenbankserver unter Last setzen könnte. Dafür ist dann genau dieses Limit max_user_connections gedacht, damit dies nicht passieren kann. Ich hoffe ich habe es richtig mit dem max_user_connections Verstanden.

Nun mein Problem ist, dass ich diese max_user_connections ständig erreiche und ich verstehe nicht, warum. So wie ich verstanden habe, nach jedem Aufruf, sobald der Script beendet ist, wird auch die Verbindung zu MySQL getrennt. Hier ist mein Code, mit dem ich auf die MySQL-Datenbank zugreife. Was ist falsch an diesem Code? Warum registrier MySQL nicht, dass die Verbindung wieder getrennt ist?

<?php

$sql = "SELECT
tour_id,
tour_name,
estimated_costs,
target_lon,
target_lan
FROM tours
";

$dsn = "mysql:host=server.address.host;dbname=web_db1";
$user = "web";
$passwd = "123456";

$pdo = new PDO($dsn, $user, $passwd);

//get data in an indexed array.
$stm = $pdo->query($sql);
$rows = $stm->fetchAll(PDO::FETCH_NUM);

//encode
echo json_encode($rows, JSON_INVALID_UTF8_IGNORE);

if(json_last_error())
{
echo "Success: A proper connection to MySQL was made! The my_db database is great." . PHP_EOL;
echo json_last_error_msg(); // Print out the error if any
}
?>

Gruß
Stefan
 
Werbung:
scheint so, du öffnest Verbindungen, beendest dies aber nicht expliziet. Aber PHP ist hier Off-Topic. Davon abgesehen, wenn Deine Tabelle etwas größer wird, wird das Result-Set dies auch. Linear. Hantieren mit Lon/Lat ist so 80iger, da gibt es besseres ... und lat hast flasch geschrieben.

Ach ja: falsches Unterforum hast auch auch getroffen ...
 
Zurück
Oben