Server has gone away

Bonjour,
J’ai créé une BDD MySQL dans un hébergement (Hostinger) et j’y accède via LibreOffice Base (Windows 11).
Mais au bout de quelques secondes d’utilisation (à peine le temps d’exécuter une requête), LibreOffice affiche le message d’erreur “Server has gone away”.
Que faire ?

How to Fix the “MySQL server has gone away” Error | Hostinger Help Center


To solve it, try adding the mysql_reconnect command before each query.

Merci beaucoup fpy, j’avais bien vu cette réponse, mais elle ne peut pas s’appliquer à la situation décrite dans ma question : la BDD est utilisée à distance par des postes LibreOffice/Windows.
Pensez-vous que le problème puisse être traité par l’hébergeur/serveur, ou par une intervention sur les postes de travail /clients ?
Cordialement.

rien d’incompatible a priori, mais sans détails sur votre config, difficile de deviner quoi paramétrer.

pour ce qui est de LO : Frequently asked questions - Base - The Document Foundation Wiki

faut leur demander :

y a surement un minimum de parametrage de la base accessible.

Merci fpy, et désolé de vous prendre du temps : mes “compétences” techniques sont si limitées que je risque de mal comprendre vos questions (et de répondre à côté).

Demander à l’hébergeur ?

Après discussion avec leur chat, il semble que mon hébergement actuel ne permette pas d’accéder aux paramétrages utiles à la résolution de mon souci, notamment : wait_timeout.
Effectivement, j’avais essayé d’utiliser l’hébergement d’un site internet WordPress pour tester la mise en place de ma BDD accessible à distance.
Avec phpMyAdmin, il était simple d’effacer la BDD du site, de créer une nouvelle BDD correspondant à mon projet, et de créer la connexion avec un poste de travail distant sous LibreOffice Base.
Le mode d’emploi trouvé sur l’aide LibreOffice a grandement facilité les choses : merci et bravo à ses auteurs.

J’ai donc accepté un nouvel hébergement pas trop cher (VPS autogéré). Et je me retrouve déjà en face de quelques difficultés (pour commencer, je ne connais rien à Ubuntu/Linux).

On s’écarte donc des sujets abordés dans ce forum.
Mais si mon parcours peut intéresser d’autres utilisateurs de LibreOffice (et si certains d’entre eux peuvent m’assister…) il est peut-être utile de poursuivre ces échanges ici.
Qu’en pensez-vous ?

Cordialement.

il faudrait essayer des requêtes via Exécution d'instructions SQL

notamment :

SELECT VERSION();

SHOW VARIABLES LIKE "%version%";

SET SESSION wait_timeout=60
select 1;
  // attendre 1 minute ...
select 2;

Je me connecte, ma base apparaît, je tape la requête que j’éxécute en ayant sélectionné Exécuter la commande SQL directement, et LO Base me répond “1: Server has gone away”.
Rien à faire !

coller ?

copie d’écran ?

y aurait aussi moyen d’essayer de configurer un paramètre de connection :
mysql://user:passwd@myhost/mydb?autoReconnect=true
ou
mysql://user:passwd@myhost/mydb?connect-timeout=600

cf https://dev.mysql.com/doc/refman/8.4/en/connecting-using-uri-or-key-value-pairs.html

mais donc demander à hostiinger si ils acceptent bien les connections distantes.
à en croire cette procédure : How to Import a Database Over SSH | Hostinger Help Center
ça semble pas si évident :thinking:


Merci fpy.
Si j’ai bien compris le chat avec Hostinger, mon plan d’hébergement initial (prévu pour un simple site WordPress), ne donne pas accès aux commandes MySQL, d’où mon achat d’un hébergement VPS.
C’est (pour moi) complexe, et je ne sais pas si ce forum est le bon endroit pour traiter ce sujet.
Qu’en pensez-vous ?

je suggère de mettre à jour le sujet : Erreur “Server has gone away” - accès hébergement Mysql

le problème c’est que le serveur MySql qui est fourni par hostinger n’est accessible que depuis le serveur (linux) web/php qu’il vous fournisse aussi.

donc un client lourd externe comme LO Base, ou MySQL Workbench, ou DBeaver … ne peut pas accéder (directement) aux bases de ce serveur MySql.
par ex. Can't connect to db with libre office base - #5 by anon55589970 - Hosting Support - InfinityFree Forum

Conceptuellement, il faudrait passer par un tunnel
e.g. Is there any good universal PHP MySQL HTTP tunnel? - Stack Overflow
c’est pas spécialement compliqué, mais c’est clairement du bricolage un peu abstrait de prime abord.

A voir selon le nombre d’utilisateurs, la taille des données et les interfaces, si ça en vaut la peine…

Try this:

GLOBAL boStop AS BOOLEAN

SUB Reconnect
 DIM oDatasource AS OBJECT
 DIM oConnection AS OBJECT
 DIM oSQL_Command AS OBJECT
 boStop = false
 DO
 WAIT 30000 'time in milliseconds
 oDatasource = thisDatabaseDocument.CurrentController
 oConnection = oDatasource.ActiveConnection()
 oSQL_Command = oConnection.createStatement()
 oSQL_Command.executeQuery("SELECT NOW()")
 LOOP WHILE boStop = false
END SUB

SUB StopConnect
 boStop = true
END SUB

Start “reconnect” after Base document has been opened. Connects every 30 seconds with a little query.

Je ne sais pas comment mettre à jour le sujet, votre “renommage” me va bien.
Je vais essayer “InfinityFree (qui) a une sorte de partenariat avec iFastNet”.
Quant à la procédure proposée par RobertG, (merci à lui) c’est certainement une solution de dépannage temporaire efficace, mais difficile à intégrer dans les procédures de travail des utilisateurs (ils connaissent un peu LibreOffice, mais pas plus).
Cordialement.
PS : je continue à alimenter cette discussion si vous êtes OK.

tested somewhere on a hosted mysqld ?

Indeed. Works better than trying

SET SESSION wait_timeout=600;

or something like this.

Bonjour Robert,
Merci pour ta réponse.
Peux-tu m’indiquer la bonne syntaxe pour le module que tu proposes :
oDatasource : le nom du fichier odb ?
oConnection : le nom du serveur donné par l’hébergeur ?
Questions basiques du néophyte que je suis…
En attendant, je me suis collé à la configuration d’une installation “autogérée” d’un VPS acheté chez Hostinger : je rame.

Il te suffit d’écrire la macro dans ton fichier de base, avec lequel tu te connectes à ton serveur.
Tu démarres ensuite la macro via
Tools → Customize → Events → Open Document
ou quelque chose comme ça.

Merci Robert.
Je me suis résolu à abandonner mon idée initiale (détourner un hébergement WordPress pour y installer une BDD MySql ; cet hébergement ne permet pas d’accéder aux configurations nécessaires.
Et je viens de finir avec succès l’installation de ma Base sur un nouvel hébergement VPS : ça fonctionne parfaitement.
D’ailleurs, j’ai été assisté tout au long de cette installation par l’IA de l’hébergeur, et je suis stupéfait de l’efficacité de cette IA, et du confort de ce mode d’assistance.
Stupéfait et inquiet pour l’avenir des milliers d’informaticiens des hotlines…
Cordialement.

Votre hébergeur vous fournit un serveur MySQL mutualisé et donc sans possibilité de personnalisation. Donc ce que vous cherchez à faire est tout simplement impossible.

Merci Valable, vous avez raison, c’est pourquoi j’ai investi dans un VPS.
Installation et configuration “autogérée”, donc un peu compliquée, mais aidée par leur IA, ça fonctionne.
Reste à régler quelques soucis :

  • pas d’accès à phpmyadmin (pourtant prévu dans l’offre),
  • éviter que Libre Office Base affiche tous les fichiers présents dans la racine au lieu de n’afficher que -la Base de donnée
  • traiter les accès simultanés : je pense prudent d’empêcher des modifs contradictoires…
    Mais ça avance pas mal.
    Cordialement.

Evitez d’écorcher les noms et veillez à indiquer que le sujet est solutionné.