PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 PL/pgSQL » Comment afficher un agrégat » 21/03/2018 13:19:19

rapy73
Réponses : 1

Bonjour,

Voici une requête qui fonctionne, mais je souhaiterai afficher l'agrégat AVG(salaire)  dans le résultat de ma requête, comment faire ?
sachant que AVG(salaire) dans le SELECT principal ne fonctionne pas, il demande un GROUP BY

SELECT nom, prenom, salaire, commission,
(salaire + commission) AS 'sommes salaire + commission'
FROM employes
WHERE (salaire + commission) > (SELECT AVG(salaire) FROM employes);

merci de vos avis

#2 Re : Général » exécuter un script sql » 15/03/2018 17:41:50

bon en attendant de trouver peut-être une solution sous posgresql, je me suis monté un environnement SQL Server express, avec studio management sous windows
tout fonctionne.

J'aurai pensé que mon fichier avait un minimum de compatibilité entre les différents SGBDR, vu que c'est un script pour une formation en SQL

merci pour vos avis et conseils

#3 Re : Général » exécuter un script sql » 15/03/2018 13:45:48

je vois le problème,

Il y a t-il un outil qui permettrait l'analyse de la syntaxe de se fichier sous postgresql pour tracer les erreurs ? pour les corriger ?

je rêve peut-être mais bon comme je découvre postgresql et le sql ...

merci

#4 Général » exécuter un script sql » 15/03/2018 13:14:31

rapy73
Réponses : 3

Bonjour,

J'ai un script  toto.sql, qui provient d'une formation sur le SQL, et qui s'installe dans la formation sur SQLServeur Express avec l'outil : SQL Server management studio sous windows
mais voilà je veux exécuter ce script sous linux sur mon serveur postgresql
J'ai essayé avec PgAdmin en me connectant en postgres, mais je n'ai pas accès à "ouvrir un fichier" sauf si je me place sur la base de données "postgres". je me place dessus et je fais un "ouvrir fichier" je pointe sur mon fichier "toto.sql pour l'ouvrir dans l'éditeur de requêtes, mais j'obtiens le message d'erreur suivant :

Warning :

Le fichier « toto.sql » n'a pas pu être ouvert car il contient des caractères qui ne peuvent pas être interprétés.

note : ce fichier toto.sql  est là pour créer une base de données toto avec ses tables et enregistrement, avec un utilisateur et mot de passe

puis-je contourner se problème en exécutant se script en ligne de commande ?
si oui comment ?  qu'elle commande ? où faut-il que je me place pour l'exécuter ?  (racine de mon instance ?)

c'est la 1ere fois que je fais cela, merci de vos conseils

#5 Re : Général » accès postgresql depuis une application » 06/03/2018 19:31:01

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

#6 Re : Général » accès postgresql depuis une application » 06/03/2018 14:34:41

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

#7 Re : Général » accès postgresql depuis une application » 06/03/2018 12:53:27

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 ?

#8 Re : Général » accès postgresql depuis une application » 06/03/2018 12:12:53

il y a bien une ERREUR SQL.... Pourquoi considérez-vous cette ligne comme "réussit" ?

merci

#9 Re : Général » accès postgresql depuis une application » 06/03/2018 11:27:08

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

#10 Général » accès postgresql depuis une application » 06/03/2018 06:20:44

rapy73
Réponses : 11

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

#11 Re : Installation » Accès à la base de données » 03/03/2018 20:49:32

ok les logs fonctionnent
dans postrgresql.conf
j'ai mis
dans la partie  "Error reporting and logging"
# - What to Log -

#debug_print_parse = off
#debug_print_rewritten = off
#debug_print_plan = off
#debug_pretty_print = on
#log_checkpoints = off
log_connections = on
log_disconnections = on
#log_duration = off
#log_error_verbosity = default         
log_hostname = on
#log_line_prefix = ''

je redémarre le serveur postgresql
ok
si je fais des manip avec phpPgAdmin   ca se voit dans les logs
par contre toujours rien de dolibarr
je précise que je lance un install de dolibarr avec dans firefox : http://localhost/dolibarr/install/fileconf.php?selectlang=fr_FR
j'obtiens :

Database Vérification des prérequis:
Ok Version de PHP 7.1.14
Ok Ce PHP prend bien en charge les variables POST et GET.
Ok Ce PHP prend en charge les sessions.
Ok Ce PHP prend en charge les fonctions graphiques GD.
Ok PHP supporte l'extension Curl
Ok Ce PHP prend en charge les fonctions UTF8.
Ok Votre mémoire maximum de session PHP est définie à 128M. Ceci devrait être suffisant.
Ok Le fichier de configuration /etc/dolibarr/conf.php existe.
Ok Le fichier /etc/dolibarr/conf.php est modifiable.

Veuillez suivre les étapes une à une. Choisissez votre mode d'installation et cliquez sur "Démarrer"…

et c'est là que ça ne se connecte pas à postgresql

Aucune trace d'une connexion ou essai de connexion de la part de dolibarr dans les logs !

pouvez-vous dire comment passer mon utilisateur dolibarrowner en superutilisateur depuis PgAdmin ou en ligne de commande ?
je débute sous postgres donc pas encore appris les droits sur les utilisateurs,

Vous avez raison quand vous dites : que dollibarr cherche à créer la base et l'utilisateur, sauf qu'après recherche : si la base et l'utilisateur sont déjà créés (procédure que l'on trouve sur les tutos youtubes), il suffit de renseigner le nom de la base, le type de base de données et l'identifiant et mot de passe de l'utilisateur de la base de donnée, pour continuer l'installation de dolibarr.
A ce stade le validation des options de création de la base et de l'utilisateur ne fonctionnerait qu'avec mysql ou mariadb  (lu sur forum dolibarr)
J'ai essayé cette manip de création, en donnant l'identiant et mot de passe du superutilisateur (administrateur de la base) mais j'ai eu exactement le même message d'erreur.

Je reviens, j'ai bien créé un utilisateur dolibarrowner avec tous les droits et superutilisateur, j'ai créé la base dolibarr avec tous les droits, cela ne change rien à l'absence de connexion de dolibarr pour finaliser l'install
il n'y a rien dans les logs, comme si dolibarr n'arrivait pas à toucher postgresql, donc peut-être qu'il y a un problème avec la version dolibarrpm pour fedora, j'essayerai demain d'installer la version zip.


merci

#12 Re : Installation » Accès à la base de données » 03/03/2018 11:11:39

Voici les log
j'ai au préalable essayé de me connecter avec dolibarr, il y a bien une ligne où il y a un problème apparemment d'heure !!!  rien à voir avec mon problème de connexion, est-ce les bons log ?

[root@localhost pg_log]# cat postgresql-Sat.log
FATAL:  le système de bases de données se lance
LOG:  le système de bases de données a été arrêté à 2018-03-02 23:13:08 CET
FATAL:  le système de bases de données se lance
LOG:  Les protections sur la réutilisation d'un membre MultiXact sont maintenant activées
LOG:  le système de bases de données est prêt pour accepter les connexions
LOG:  lancement du processus autovacuum
ERREUR:  the log_filename parameter must equal 'postgresql-%Y-%m-%d_%H%M%S.log'
INSTRUCTION :  SELECT filename, filetime
          FROM pg_logdir_ls() AS A(filetime timestamp, filename text)
         ORDER BY filetime DESC
[root@localhost pg_log]#

Après de multiples recherches, je ne trouve pas les log de connexion
j'ai fais des manips dans /var/lib/pgsql/data/postgresql.conf  avec des example de variables à mettre à true , mais ça na fait que me faire des erreurs au redémarrage de postgresql.service
Dans ce même fichier j'ai vu dans la partie "Error reporting and logging" qu'il y avait plusieurs moyens de faire de la journalisation des erreurs, notamment "stderr"
# This is used when logging to stderr:
logging_collector = on                  # Enable capturing of stderr and csvlog
                                                         # into log files. Required to be on for
                                                       # csvlogs.
                                                      # (change requires restart)

# These are only used if logging_collector is on:
#log_directory = 'pg_log'               # directory where log files are written,
                                                        # can be absolute or relative to PGDATA
log_filename = 'postgresql-%a.log'      # log file name pattern,
                                                      # can include strftime() escapes
#log_file_mode = 0600                   # creation mode for log files,
                                                       # begin with 0 to use octal notation
log_truncate_on_rotation = on   

Donc je pense que le résultat de mes log ci-dessus est le bon, mais ou trouver les log de connection ? comment les activer ?

merci

#13 Installation » Accès à la base de données » 03/03/2018 10:15:15

rapy73
Réponses : 5

Bonjour,

Je suis sous fedora 27 linux
J'ai installé Postgresql en mode serveur , apache et php
les serveurs tournent
les accès en ligne de commande à la base de données fonctionnent, phpPgAdmin et PgAdmin3 fonctionnent

J'ai installé Dolibarr  ERP/CRM avec Dolibarrpm
j'ai obtenu comme résultat :!

Database Vérification des prérequis:
Ok Version de PHP 7.1.14
Ok Ce PHP prend bien en charge les variables POST et GET.
Ok Ce PHP prend en charge les sessions.
Ok Ce PHP prend en charge les fonctions graphiques GD.
Ok PHP supporte l'extension Curl
Ok Ce PHP prend en charge les fonctions UTF8.
Ok Votre mémoire maximum de session PHP est définie à 128M. Ceci devrait être suffisant.
Ok Le fichier de configuration /etc/dolibarr/conf.php existe.
Ok Le fichier /etc/dolibarr/conf.php est modifiable.

Veuillez suivre les étapes une à une. Choisissez votre mode d'installation et cliquez sur "Démarrer"…

Mais voilà après renseignement des différents champs dans dolibarr, j'obtiens le message d'erreur suivant :

Host, login or password incorrect
La connexion ayant échoué, les paramètres du serveur ou du super utilisateur sont peut-être incorrects.
Revenez en arrière et corrigez les paramètres invalides.

Pourquoi Dolibarr n'arrive pas à ce connecter à Postgresql ?   (je suis en localhost)
j'ai créé un utilisateur "dolibarrowner" avec son mot de passe
j'ai céé avec phpPgAdmin une base de données "dolibarr" avec les droit de dolibarrowner et autorisé en connection et autres
j'ai déclaré dans les champs à remplir de Dolobarr que j'utilise Pgsql >=9.0
port : 5432   (celui déclaré dans PgAdmin pour la nase de données "dolibarr"

Là je coince, je débute sous Posgresql,  qu'est-ce que j'ai oublié ? erreur ? vérification non faites ?

merci pour vos suggestions

#14 Re : Installation » phpPgAdmin » 01/03/2018 16:41:41

Trouvé

Par hasard j'ai essayé de changer dans le fichier phpPgAdmin
Allow From all 
par :
Require all granted
et cela fonctionne

résolu

#15 Re : Installation » phpPgAdmin » 01/03/2018 16:24:51

je suis sous apache 2

un loclahost ou 192.168.0.10 me retourne bien la page d'accueil d'apache, le serveur tourne.
bon je vais chercher du côté de la configuration de phpPgAdmin pour apache

#16 Installation » phpPgAdmin » 01/03/2018 13:32:55

rapy73
Réponses : 3

Bonjour,

Je n'arrive pas à joindre ma base de données avec phpPgAdmin
note : PgAdmin3 fonctionne

http://localhost/phpPgAdmin/
me donne :
403 Forbidden

You don't have permission to access /phpPgAdmin/ on this server.

Voici ma configuration de phpPgAdmin

Pour le serveur apache

Contenu du fichier   /etc/httpd/conf.d/phpPgAdmin.conf

Alias /phpPgAdmin /usr/share/phpPgAdmin

<Location /phpPgAdmin>
   <IfModule mod_authz_core.c>
       # Apache 2.4
#        Require local
       Allow From all  
      #Require host example.com
   </IfModule>
   <IfModule !mod_authz_core.c>
       # Apache 2.2
       Order deny,allow
       Deny from all
       Allow from 127.0.0.1
       Allow from ::1
       # Allow from .example.com
   </IfModule>
</Location>

Pour la partie phpPgAdmin

/etc/phpPgAdmin/config.inc.php

j'ai mis la ligne :
$conf['extra_login_security'] = false;

ensuite j'ai redémarré les serveurs :
systemctl restart postgresql.service
systemctl restart httpd.service

Comment autoriser postdres à accepter l'accès par phpPgAdmin ?

j'ai lu que sous mysql il y a dbconfig-common pour configurer la base de donnée de phpMyAdmin, mais sous Postgresql ??

merci

#17 Re : Installation » Mot de passe de postgres » 28/02/2018 21:59:29

Stop, résolu
j'ai trouvé ici sur le forum une manip
# nano /var/lib/pgsql/data/pg_hba.conf
remplacé mes md5 en trust
redémarré le serveur
j'ai pu me connecter sans mot de passe
puis remis un mot de passe avec la commande  : # ALTER USER postgres WITH PASSWORD 'mot_de_passe';
remis mes md5 à la place des trust
redémarré le serveur
j'ai pu me connecter avec un mot de passe

Voilà
je continue mon install

#18 Installation » Mot de passe de postgres » 28/02/2018 19:01:46

rapy73
Réponses : 1

Bonjour,

1ere install de postgres, je suis sous fedora 27 et je suis à la lettre la procédure d'install de postgresql
j'ai trouvé des chose similaires sur le forum, mais n'arrive pas à les adapter à mon problème.

Je rencontre le problème suivant:

à un moment de l'install, on me dit de sécuriser postgres de la manière suivante :
# nano /var/lib/pgsql/data/pg_hba.conf

Modifier le fichier en remplaçant ident sameuser par md5 afin d'obtenir les lignes suivantes :
# "local" is for Unix domain socket connections only
local   all         all                               md5
# IPv4 local connections:
host    all         all         127.0.0.1/32          md5
# IPv6 local connections:
host    all         all         ::1/128               md5
Pour que les modifications prennent effet il faut redémarrer le serveur :
$ su -lc 'service postgresql restart'

tout c'est bien passé

mais maintenant lorsque je veux rentrer dans postgresql j'ai le message suivant :

[postgres@localhost ~]$ psql
Mot de passe :
psql: FATAL:  authentification par mot de passe échouée pour l'utilisateur  « postgres »

J'ai pourtant bien relevé le mot de passe au moment de la demande et suis sur de le réintroduire correctement
il y a t-il un moyen de le réinitialiser ?

merci

Pied de page des forums

Propulsé par FluxBB