Datenbankserver Problem nach Upgrade  [GELÖST]

Locked
IchBins
Posts: 112
Joined: Thu 19. Nov 2020, 15:07

Datenbankserver Problem nach Upgrade

Post by IchBins »

Hallo,

nachdem ich auf Debian 11 geupgradet hatte, musste ich nun feststellen, dass es immer wieder vorkommt, dass man keine Datenbank anlegen kann.

Database error: SQLSTATE[HY000]: General error: 1615 Prepared statement needs to be re-prepared

Nachdem ich den Dienst neu gestartet habe, geht es wieder. Aber nach einer gewissen Zeit fällt es wieder aus.

In der /var/log/keyhelp/php-error.log stehen solche Einträge.

08-Oct-2021 17:36:02 Europe/Berlin] PHP Warning: Database error: SQLSTATE[HY000]: General error: 1615 Prepared statement needs to be re-prepared in /home/keyhelp/www/keyhelp/core/Database/DatabaseConnection.php on line 490
[08-Oct-2021 18:11:01 Europe/Berlin] Database error: SQLSTATE[HY000]: General error: 1615 Prepared statement needs to be re-prepared
[08-Oct-2021 18:15:38 Europe/Berlin] Database error: SQLSTATE[HY000]: General error: 1615 Prepared statement needs to be re-prepared
[08-Oct-2021 18:16:22 Europe/Berlin] MySQL - Connection Error: 2002 (No such file or directory)
nikko
Posts: 914
Joined: Fri 15. Apr 2016, 16:11

Re: Datenbankserver Problem nach Upgrade

Post by nikko »

Also du loggst dich als User ein und legst eine leere Datenbank an. Das wirft eine Fehlermeldung in KH?
The software said: Requires Win Vista®, 7®, 8® or better. And so I installed Linux.
IchBins
Posts: 112
Joined: Thu 19. Nov 2020, 15:07

Re: Datenbankserver Problem nach Upgrade

Post by IchBins »

Genau...ich logge mich als User ins Keyhelp ein und wenn ich dann nach dem eingeben der Daten für die Datenbank auf speichern klicke kommt diese Meldung. Es wird dann nur die Fehlermeldung auf einer ansonsten weißen Seite angezeigt.
User avatar
space2place
Posts: 494
Joined: Tue 24. Mar 2020, 11:02
Contact:

Re: Datenbankserver Problem nach Upgrade

Post by space2place »

Wenn man den Fehler mal googeln würde, dann bekommt man immer wieder den Hinweis den Parameter

Code: Select all

table_definition_cache
Zu erhöhen und MariaDB neu zu starten.
IchBins
Posts: 112
Joined: Thu 19. Nov 2020, 15:07

Re: Datenbankserver Problem nach Upgrade

Post by IchBins »

Habe ich gemacht. Ich bin aber noch am testen. Daher habe ich noch nichts wieder geschrieben.
Seit 4 Stunden funktioniert es jetzt. Ich hatte table_definition_cache auf 10000 gesetzt.
User avatar
Tobi
Community Moderator
Posts: 2829
Joined: Thu 5. Jan 2017, 13:24

Re: Datenbankserver Problem nach Upgrade  [GELÖST]

Post by Tobi »

Nachdem mir das jetzt auch passiert ist und ich dann über Google diesen Beitrag gefunden habe, möchte ich nun auch noch die Lösung posten.

Zuerst fragt man den aktuellen Status ab.

Code: Select all

# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 19713
Server version: 10.5.12-MariaDB-0+deb11u1 Debian 11

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> select @@table_open_cache;
+--------------------+
| @@table_open_cache |
+--------------------+
|               8192 |
+--------------------+
1 row in set (0.000 sec)

MariaDB [(none)]> show global status like 'opened_tables';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Opened_tables | 4879  |
+---------------+-------+
1 row in set (0.000 sec)

MariaDB [(none)]> show global status like 'open_tables';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Open_tables   | 4727  |
+---------------+-------+
1 row in set (0.001 sec)

MariaDB [(none)]> quit;
Bye

In diesem Fall ist der erste Wert, die 8192 entscheidend.

Als nächstes legen wir eine neue Datei unterhalb von "/etc/systemd/system/mariadb.service.d/" an. Der Dateiname ist egal, wichtig ist nur, dass die Datei auf ".conf" endet.

Code: Select all


# nano /etc/systemd/system/mariadb.service.d/opentables.conf

in diese Datei kommt:

Code: Select all

[Service]
Environment="MYSQLD_OPTS=--table-open-cache=100000"

Am Ende der letzten Zeile einen Zeilenumbruch setzen!
Datei Speichern und nano verlassen.

Jetzt noch ein

Code: Select all


# systemctl daemon-reload

Code: Select all


# systemctl restart mysql

WIr prüfen ob es geklappt hat:

Code: Select all

# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2337
Server version: 10.5.12-MariaDB-0+deb11u1 Debian 11

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> select @@table_open_cache;
+--------------------+
| @@table_open_cache |
+--------------------+
|             100000 |
+--------------------+
1 row in set (0.000 sec)

MariaDB [(none)]>


Bestens 😊
Gruß,
Tobi


-----------------------------
wewoco.de
Das Forum für Reseller, Digital-Agenturen, Bildschirmarbeiter und Mäuseschubser
User avatar
Jolinar
Community Moderator
Posts: 3602
Joined: Sat 30. Jan 2016, 07:11
Location: Weimar (Thüringen)
Contact:

Re: Datenbankserver Problem nach Upgrade

Post by Jolinar »

Tobi wrote: Mon 28. Feb 2022, 16:10 Als nächstes legen wir eine neue Datei unterhalb von "/etc/systemd/system/mariadb.service.d/" an. Der Dateiname ist egal, wichtig ist nur, dass die Datei auf ".conf" endet.

Code: Select all

# nano /etc/systemd/system/mariadb.service.d/opentables.conf
in diese Datei kommt:

Code: Select all

[Service]
Environment="MYSQLD_OPTS=--table-open-cache=100000"

Am Ende der letzten Zeile einen Zeilenumbruch setzen!
Datei Speichern und nano verlassen.
@Alex:
Würde es evtl. Sinn machen, den Parameter in der Standardkonfiguration des DB-Servers beim Keyhelp Setup zu setzen?
Wenn jemand inkompetent ist, dann kann er nicht wissen, daß er inkompetent ist. (David Dunning)

Data Collector für Community Support
___
Ich verwende zwei verschiedene Schriftfarben in meinen Beiträgen /
I use two different font colors in my posts:
  • In dieser Farbe schreibe ich als Moderator und gebe moderative Hinweise oder begründe moderative Eingriffe /
    In this color, I write as a moderator and provide moderative guidance or justify moderative interventions
  • In dieser Farbe schreibe ich als Community Mitglied und teile meine private Meinung und persönlichen Ansichten mit /
    In this color, I write as a community member and share my personal opinions and views
User avatar
Alexander
Keyweb AG
Posts: 3842
Joined: Wed 20. Jan 2016, 02:23

Re: Datenbankserver Problem nach Upgrade

Post by Alexander »

Standardmäßig (ohne KeyHelp) setzt MariaDB 10.5. (Debian 11) den Wert auf 2000.

Eine KeyHelp-Installation setzt den Wert hier anschließend auf 4096.

Würde ich also vorerst nicht noch weiter erhöhen wollen, weil der Wert auch sehr davon abhängt, was man mit seinem Server so anstellt.
Mit freundlichen Grüßen / Best regards
Alexander Mahr

**************************************************************
Keyweb AG - Die Hosting Marke
Neuwerkstr. 45/46, 99084 Erfurt / Germany
http://www.keyweb.de - http://www.keyhelp.de
**************************************************************
User avatar
Tobi
Community Moderator
Posts: 2829
Joined: Thu 5. Jan 2017, 13:24

Re: Datenbankserver Problem nach Upgrade

Post by Tobi »

Bei mir waren die 8192 als default gesetzt.
Ich hatte an dem Parameter bisher nix verändert.
Gruß,
Tobi


-----------------------------
wewoco.de
Das Forum für Reseller, Digital-Agenturen, Bildschirmarbeiter und Mäuseschubser
User avatar
Tobi
Community Moderator
Posts: 2829
Joined: Thu 5. Jan 2017, 13:24

Re: Datenbankserver Problem nach Upgrade

Post by Tobi »

Wie sich gezeigt hat, reicht das Anheben der Limits innerhalb der Datenbankkonfiguration nicht aus.
Ich musste zusätzlich die OS-seitigen Dateibeschränkungen des Users mysql anpassen.
Wie das geht sagt euch fulltilt
https://debianforum.de/forum/viewtopic. ... 8#p1139359

Erst jetzt läuft alles rund.
Vorher ist der Standardwert von 1024 gesetzt. Auf einem Server mit vielen Datenbanken und den daraus resultierenden Tabellen wird das OS seitige Datei-Limit (schnell) erreicht. Standardmäßig dürfen somit nur max. 1024 Dateien gleichzeitig geöffnet sein. Jede Tabelle einer Datenbank benötigt jedoch bereits zwei Dateien.
In diesem konkreten Fall war das Filelimit von Debian11 nach 25 Joomla Installationen (mit jeweils ein paar Extensions 😉) erreicht.
Gruß,
Tobi


-----------------------------
wewoco.de
Das Forum für Reseller, Digital-Agenturen, Bildschirmarbeiter und Mäuseschubser
Locked