Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 06/03/2018 06:20:44
- rapy73
- Membre
accès postgresql depuis une application
Bonjour,
je suis sous fedora 27
serveurs apache et postgresql tournent , php installé
j'ai fais une installation d' ERP/CRM dolibarr depuis mon navigateur firefox
j'avais rencontrer un problème d'accès entre l'installateur et postgresql, rien dans les logs
cela venait du fait que postgresql n'était pas à l"écoute du réseaux
note: tout est en local : localhost
j'ai modifié le fichier postgresql.conf
# - Connection Settings -
listen_addresses = 'localhost'
redémarrer le serveur postfresql (visible dans les logs)
j'ai pu finir l'installation puisque la connexion se faisait.
j'ai eu le message d'erreur suivant à la fin de mon install, mais j'ai eu quand même le fénêtre de connection dans firefox
message d'erreur :
Erreur SQL DB_ERROR_SYNTAX ERREUR: 42601: erreur de syntaxe sur ou près de « ENGINE » LINE 1: ...int DEFAULT '0', entity integer DEFAULT 1 ) ENGINE=Inn... ^ LOCATION: scanner_yyerror, scan.l:1087
je n'ai pas réussis à me connecter
je reboote la machine
a nouveau plus possible de se connecter depuis dolibarr sur postgresql, rien dans les logs, comme si postgresql n'était à nouveau plus à l'écoute du réseau !!!
je vérifie mon postgresql.conf
listen_adresses = ' localhost' est toujours présent et décommenté
Que dois je vérifier pour que postgresql soit à l'écoute de ce qui se passe sur le réseau, et ici en localhost ?
autre question : si vous pouvez m'expliquer le message d'erreur, qu'est-ce qui se passe, j'ai compris qu'il y avait une erreur de syntaxe mais ..... merci
merci pour votre aide
Dernière modification par rapy73 (06/03/2018 06:21:23)
Hors ligne
#2 06/03/2018 10:45:32
- gleu
- Administrateur
Re : accès postgresql depuis une application
L'erreur indiquée correspond à un problème syntaxique d'une requête SQL, pas à un problème de connexion.
Le problème survient avec "ENGINE=Inn". ENGINE est une clause inconnue dans la syntaxe PostgreSQL pour ce qui semble être une requête de création de table. Si j'extrapole, cela semble vouloir être "ENGINE=InnoDB". InnoDB est une technologie MySQL. Donc je pense qu'il y a un soucis au niveau de votre configuration Dolibarr qui prend la PostgreSQL pour une base MySQL.
Guillaume.
Hors ligne
#3 06/03/2018 11:27:08
- rapy73
- Membre
Re : accès postgresql depuis une application
Oui, après recherche d'après votre piste sur innodb, il y a un correctif à apporter à un fichier de configuration de l'installateur
mais j'ai en plus un problème de connexion à postgresql comme expliqué précédemment
En désactivant SElinux postgresql écoute le réseau
je peux lancer l'intall pour la 2e fois avec le correctif innodb
voici ce que j'obtiens à l'étape n°2
message d'erreur
Création des fonctions
Request 788 : DROP FUNCTION date_format(timestamp without time zone,text);
Erreur SQL DB_ERROR_42883 ERREUR: 42883: la fonction date_format(timestamp without time zone, text) n'existe pas LOCATION: LookupFuncName, parse_func.c:1925
je peux passer à l'étape suivante et l'installation se termine bien, je peux me connecter à dolibarr avec mes identifiants
ça avance
une idée pour le message d'erreur à résoudre ?
restera à trouver pourquoi SElinux sous fedora pose des problèmes à postgresql pour écouter sur le réseau, sans doute des droits à revoir pour postgresql dans SElinux
merci de votre aide, bonne journée
Dernière modification par rapy73 (06/03/2018 12:10:57)
Hors ligne
#4 06/03/2018 12:04:34
- gleu
- Administrateur
Re : accès postgresql depuis une application
Ces logs ne montrent que des accès réussis. Donc difficile de dire ce qui ne va pas uniquement avec ça. Par contre, si vous attendez des connexions extérieures (ie, pas sur localhost), vous devez configurer listen_adresses en adéquation.
Guillaume.
Hors ligne
#5 06/03/2018 12:12:53
- rapy73
- Membre
Re : accès postgresql depuis une application
il y a bien une ERREUR SQL.... Pourquoi considérez-vous cette ligne comme "réussit" ?
merci
Hors ligne
#6 06/03/2018 12:38:19
- rjuju
- Administrateur
Re : accès postgresql depuis une application
il y a bien une ERREUR SQL.... Pourquoi considérez-vous cette ligne comme "réussit" ?
merci
Parce que gleu répondait à votre message initial, que vous avez édité après sa réponse.
Pour répondre à votre nouveau message, le problème est du au script d'install dolibarr. Il devrait effectuer un DROP FUNCTION IF EXISTS, disponible depuis la versoin 8.2 de postgres.
Julien.
https://rjuju.github.io/
Hors ligne
#7 06/03/2018 12:47:27
- gleu
- Administrateur
Re : accès postgresql depuis une application
Très très mauvaise pratique d'éditer un message après l'avoir envoyé. Autant en écrire un autre, sinon on ne comprend plus rien à la discussion.
Guillaume.
Hors ligne
#8 06/03/2018 12:53:27
- rapy73
- Membre
Re : accès postgresql depuis une application
Ok,
Bon reste encore le problème de SElinux à résoudre
puis une bonne formation à Postgresql :-)
Si je trouve quelque chose concernant l'erreur et une modif possible dans un fichier d'installation avec votre suggestion ( DROP FUNCTION IF EXISTS), je posterai ici, ça peut servir pour d'autres installateur de dolibarr
merci pour votre aide précieuse, j'ai compris pas mal de choses pour ma 1ere installation de Postgresql.
comment on passe le sujet en résolu ?
Dernière modification par rapy73 (06/03/2018 12:56:26)
Hors ligne
#9 06/03/2018 12:57:19
- rjuju
- Administrateur
Re : accès postgresql depuis une application
Les lignes à modifier sont ici : https://github.com/Dolibarr/dolibarr/bl … ql#L27-L30
Idéalement il faudrait que cela soit corrigé dans le projet, même si techniquement cette erreur n'empêche pas l'installation de dolibarr.
Julien.
https://rjuju.github.io/
Hors ligne
#10 06/03/2018 14:34:41
- rapy73
- Membre
Re : accès postgresql depuis une application
Super, merci pour l'info, je vais regarder si je peux modifier le fichier d’installation comme indiqué, puis relancer une install
Juste pour comprendre: si je laisse dans l'état, est-ce que je vais avoir des problèmes de format de date dans mes tables ?
merci
Hors ligne
#11 06/03/2018 14:55:13
- rjuju
- Administrateur
Re : accès postgresql depuis une application
Non, aucun problème. Le script d'installation tente de supprimer un objet qui n'existe pas avant d'essayer de le remplacer. Dans tous les cas vous avez l'objet à la fin du script. Pour vous en assurer, vous pouvez vérifier que les fonctions date_format() existent bien sur la base de destination.
Julien.
https://rjuju.github.io/
Hors ligne
#12 06/03/2018 19:31:01
- rapy73
- Membre
Re : accès postgresql depuis une application
SElinux problème réglé
Dans le tuto de dolibarr ça parle de SElinux avec une commande qui ne fonctionne pas sous fedora 27, mais qui donne une information importante "httpd"
Je croyais que SElinux posait un problème de connexion réseau à postgresql alors que SElinux posait ce même problème à Apache
J'ai contourné la difficulté de la programmation SElinux en installant un outil graphique de gestion SElinux
dnf install policycoreutils-gui
laisser le mode actuel sur : Autoritaire
puis aller dans la partie "booléan" et activer l'option :
Apache Autoriser les scripts et modules HTTPD à se connecter au réseau httpd_can_network_connect
on ferme l'outil graphique simplement
Dollibarr se lance sans problème
au reboot idem
Hors ligne
Pages : 1