Mise a jour MariaDB 5 vers 10 [Resolu]

,

Bonjour,

j’utilise Dolibarr sur un NAS Synology. Je dois faire la mise a jour de MariaDB 5 vers 10 en prevision de la mise a jour du DSM Synology en version 7 (il sera incompatible avec MariaDB 5).

Synology a des instructions claires pour migrer les BDD.

Mais je ne sais pas comment « acter » la transition dans Dolibarr, et n’ai rien trouve a ce sujet dans le forum.
-Quand sans rien toucher d’autre je deconnecte MariaDB5 et ne laisse que MariaDB10 avec la BD clonee je ne peux plus me connecter.
-Quand dans le fichier php.conf je change le port en 3307 (celui de MariaDB10), meme si MariaDB5 est sur 3306, je peux toujours me connecter, et dans la page « about Database » de Dolibarr, je vois que je suis connecte avec MariaDB5 sur le port 3307.

Voici le message d’erreur que j’obtiens:
DolibarrHasDetectedError.
InformationToHelpDiagnose:
Date: 20210103133144
Dolibarr: 12.0.2 - https://www.dolibarr.org
PHP: 7.3.16
Server: nginx/1.16.1
OS: Linux DS218play 4.4.59+ #25426 SMP Tue Nov 24 17:17:37 CST 2020 aarch64
UserAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:84.0) Gecko/20100101 Firefox/84.0

RequestedUrl: /dolibarr/htdocs/index.php
Referer: http://example/dolibarr/htdocs/admin/system/database.php?mainmenu=home&leftmenu=admintools
MenuManager:

DatabaseTypeManager: mysqli
RequestLastAccessInError: ErrorNoRequestInError
ReturnCodeLastAccessInError: ErrorNoRequestInError
InformationLastAccessInError: ErrorNoRequestInError

Message: host=localhost, port=3307, user=root, databasename=dolibarr, No such file or directory

Quelqu’un peut-il me dire ce que je ne fais pas bien? Merci par avance!

1 « J'aime »

Finalement, j’ai trouve la solution (pas peu fier hehe).
Il faut mettre a jour les donnees du PHP en remplacant l’adresse de la DB de Maria 5 par Maria 10.

Je pense que cet article devrait etre mis a jour dans le Wiki ou un autre endroit ou il soit facilement accessible, car le nouveau DSM Synology va sans doute pousser pas mal de monde a upgrader Maria de 5 vers 10.

D’ou ma question: comment faire si on veut ecrire un article pour aider la communaute et qu’il soit accessible facilement?

2 « J'aime »

Bonjour,

Vous pouvez tout à fait créé un compte sur le wiki et rédiger une nouvelle page

1 « J'aime »

Bonjour,

Merci pour ces indications précieuses. Je suis intéressé et dans la même situation…

Ok je vais m’inscrire sur le wiki et écrire l’article aujourd’hui. En fait c’est très facile et rapide heureusement!

Bonjour,
J’ai créé un compte pour le wiki, mais je n’arrive qu’à éditer des pages existantes. Pourriez vous me dire comment faire pour créer une nouvelle page (a l’intérieur de la FAQ en Français)? Désolé si c’est une question stupide ^^

Bonjour,

Le fonctionnement de MediaWiki est un peu déroutant…
Pour crée une page il faut rechercher le titre de la page, si elle n’existe pas alors il va te proposer de la crée.

Pour que ça apparaisse dans la liste de la FAQ il faut mettre ça en tête :

[[Category:FAQ FR]]
{{TemplateDocUtil}}
2 « J'aime »

Page crée ici : https://wiki.dolibarr.org/index.php?title=FAQ_Mise_à_Jour_de_MariaDB_5_a_10_sur_Synology_NAS

Super merci! J’ai ecrit mon premier article sur un Wiki grace a vos explications :slight_smile:
Le seul probleme c’est que les captures d’ecran sont un peu bancales, mais sinon j’espere que ca pourra aider des dolibarriens :slight_smile:

1 « J'aime »

Bonjour,

pourriez-vous mettre le lien vers la page s’il vous plait ?

merci et bonne journée

Le voila!
En esperant qu’il puisse vous etre utile.

1 « J'aime »

Hello,

Super ta procédure mais je corrigerais 2/3 choses :

  1. Petite erreur de retranscription au début, tu indiques « /run/mysqld10.sock dans mon exemple » alors que c’est « /run/mysqld/mysqld10.sock dans mon exemple »

  2. Après exportation de la DB Maria 5 et importation dans Maria 10, ça ne fonctionnait pas chez moi. j’ai remarqué que les utilisateurs de la table USERS n’avait pas été exporté, peut-être une erreur de ma part mais je n’ai vu aucune option pour les exporter dans la fonction « export » en tant que telle.
    J’ai plusieurs Dolibarr qui tournent sur le même Synology et donc autant de DB que de Dolibarr

MariaDB5

MariaDB10
image

J’ai donc fait comme ceci :

  1. Login SSH sur le Synology

  2. Export de toutes les DB de MariaDB5 vers un fichier SQL via la commande suivante :
    – utilisateur ROOT (-u root)
    – demande du mot de passe (-p)
    – toutes les DB (–all-databases)
    – port 3306 pour MariaDB5 (-P 3306)
    – localisation du fichier exporté (–result-file=/volume1/web/backup.sql)
    La commande donne donc ceci :
    /usr/bin/mysqldump -u root -p --all-databases -P 3306 --result-file=/volume1/web/backup.sql

  3. Import des DB dans MariaDB10 via la procédure suivante :
    Comme il existe 2 instances de MariaDB il faut bien faire attention a utiliser le MySQL de MariaDB10

  • Se rendre dans le répertoire de MariaDB10 via la commande:
    cd /usr/local/mariadb10/bin
  • Lancer la restauration du fichier SQL vial la commande :
    – utilisateur ROOT (-u root)
    – demande du mot de passe (-p)
    – port 3307 pour MariaDB10 (-P 3307)
    – localisation du fichier importé (< /volume1/web/backup.sql)
    La commande donne donc ceci :
    ./mysql -u root -p -P 3307 < /volume1/web/backup.sql
  1. Modification des fichiers de configuration à la DB (htdocs > Conf > conf.php)
    Adaptation du port 3306 vers 3307 comme dans ta procédure

  2. Modification du socket dans Web Station comme dans ta procédure

Mais ensuite, impossible pour Dolibarr de se connecter à la DB

  1. Se connecter dans PHPMyAdmin sur MariaDB10
  • Faire un flush des privilèges (sans cette étape, mon dolibarr refusait de se connecter à la DB)

  • Par contre après avoir fait un flush des privilèges, impossible de me reconnecter avec mon user ROOT car celui-ci avait un mot de passe de 8 caractère et MariaDB10 impose un mot de passe de 10 caractères minimum avec Majuscule, Minuscule, Chiffre et Symbole.

  • Changement du mot de passe ROOT de MariaDB10, dans Synology DSM :
    – Ouvrir le Package MariaDB10
    – Cliquer sur « Reset root password »
    image

– Inscrire un mot de passe répondant aux exigences (10 caractères, majuscule, minuscule et symbole)

Je peux enfin me reconnecter sur PHPMyAdmin

1 « J'aime »

Bonjour merci pour les precisions, mais, wow, c’est complique!

  1. J’ai mis a jour avec le texte correct, merci.
  2. J’hesite un peu a mettre a jour avec vos infos, car c’est deja du niveau avance, si vous etes capable de mettre a jour tout ca vous n’avez sans doute pas besoin de la FAQ non? Pour moi je suis au niveau tres debutant, du coup je me demande s’il ne serait pas possible de faire la meme chose que vous avez fait, mais en passant par l’admin de myphp, ie en recreant simplement les utilisateurs a l’identique? Ce serait plus facile pour des debutants comme moi :slight_smile:

Le problème c’est si le utilisateurs ne sont pas créé, c’est de voir si les privilèges ont bien été appliqué sur les DB
Si ce n’est pas le cas, créer les utilisateurs manuellement ne marchera pas car ils n’auront aucun droits

Hello @eljub je retrouve ton probleme car je me rends compte qu’apres etre passe a MariaDB10, j’obtiens un message d’erreur au moment de construire le database dump file.

Error : Failed to run external command. Check it is available and runnable by your PHP server. If PHP Safe Mode is enabled, check that command is inside a directory defined by parameter safe_mode_exec_dir.

est-ce que ce ne serait pas lie au probleme que tu decris? Si oui je vais me plonger dans ta procedure et essayer de faire la meme chose puis mettrai a jour mon article!

Pas forcément mais a mon avis lié à ceci

MariaDB5, le fichier exécutable mysqldump était localisé ici : /usr/bin/mysqldump
MariaDB10, le fichier exécutable mysqldump est localisé ici : /usr/local/mariadb10/bin/mysqldump

Donc il te faut peut-être modifier ce paramètre

Moi j’ai créé un script pour faire mes dumps que je lance depuis une tache planifiée de mon synology car ce n’est pas possible ou je n’ai pas trouvé le moyen d’automatiser les backup dans dolibarr

Mon script de backup

J’ai un fichier « backup_dolibarr.sh » avec ce contenu

# Script to dump the Dolibarr DB

# Dump the DB (replace user and password with your own dolibarr DB access)
# -h is the system to run the script
# -u is the DB user allowed to dump the DB
# -P is the poort on the DB
# -p is the password of the user allowed to dump the DB
/usr/local/mariadb10/bin/mysqldump dolibarr -h localhost -u <user> -P 3307 -l --single-transaction --add-drop-table=TRUE --tables -c -e --hex-blob --default-character-set=utf8 -p"<password>" --result-file=/volume1/web/dolibarr/documents/admin/backup/backup.sql

#Compress the dump to a location split by year-month in format YYYY-mm/YYYY-mm-dd_HHMMSS
# YYYY is year number on 4 digits
# mm is month number on 2 digits
# dd is day number on two digits
# HH is hour number on two digits
# MM is minute number on two digits
# SS is second number on two digits
7z a /volume1/web/dolibarr/documents/admin/backup/$(date +%Y-%m)/$(date +%Y-%m-%d_%H%M%S)_dolibarr.7z /volume1/web/dolibarr/documents/admin/backup/backup.sql

#Remove the dump because the zip file has been created
rm -rf /volume1/web/dolibarr/documents/admin/backup/backup.sql

Ensuite, j’ai ce genre de tâche sur mon synology

C’est effectivement sans doute mon probleme!

Le systeme me dit:
Backup has been launched with the following command:
/usr/bin/mysqldump dolibarr -h localhost -u root -P 3307 -l --single-transaction --add-drop-table=TRUE --tables -c -e --hex-blob --default-character-set=utf8 -p"************"

d’ou ma question tres basique: comment faire pour indiquer le bon chemin de sauvegarde?

C’est super que tu partages ca, justement ca fait partie des points que je voulais absolument regler avant de basculer completement vers Dolibarr!

Je vais essayer aussi, et pareil partager dans la FAQ.