Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
postgresql [Le 01/12/2018, 17:51] krodelabestiole [Installation manuelle avec l'installeur interactif EnterpriseDB] |
postgresql [Le 09/01/2023, 16:21] bcag2 [Guide de survie pour le client psql] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | |||
{{tag>sgbd serveur réseau BROUILLON}} | {{tag>sgbd serveur réseau BROUILLON}} | ||
Ligne 7: | Ligne 6: | ||
===== Introduction ===== | ===== Introduction ===== | ||
- | PostgreSQL est un système de gestion de bases de données ([[:SGBD]]) très performant sous licence BSD dont les performances sont comparables à Oracle 9. | + | [[wpfr>PostgreSQL]] est un système de gestion de bases de données ([[:SGBD]]) très performant sous licence BSD dont les performances sont comparables à Oracle 9. |
- | Il propose de très nombreuses fonctionnalités, tout en respectant les standards SQL : SQL 92, 99 et en partie la norme SQL2003. En outre, il intègre plusieurs langages embarqués (Perl, Python, Java) depuis de nombreuses années. [[http://www.postgresql.org/about/|Pour en savoir plus]] | + | Il propose de très nombreuses fonctionnalités, tout en respectant les standards SQL : SQL 92, 99 et en partie la norme SQL2003. En outre, il intègre plusieurs langages embarqués (Perl, Python, Java) depuis de nombreuses années. [[https://www.postgresql.org/about/|Pour en savoir plus]] |
===== Documentation ===== | ===== Documentation ===== | ||
- | La documentation ainsi que d'autres informations sont disponibles sur le [[http://www.postgresql.org/|site officiel de PostgreSQL]]. | + | La documentation ainsi que d'autres informations sont disponibles sur le [[https://www.postgresql.org/|site officiel de PostgreSQL]]. |
La communauté [[https://www.postgresql.fr/|postgresql francophone]] la reprend en [[http://docs.postgresql.fr/|français]]. | La communauté [[https://www.postgresql.fr/|postgresql francophone]] la reprend en [[http://docs.postgresql.fr/|français]]. | ||
Ligne 60: | Ligne 59: | ||
Confirmation de l'existence d'un dossier **Datas/** déjà existant.\\ | Confirmation de l'existence d'un dossier **Datas/** déjà existant.\\ | ||
Lancer l'installation. | Lancer l'installation. | ||
- | ==== L'utilisateur postgres ==== | + | |
+ | ==== Désinstallation ==== | ||
+ | Si vous souhaitez désinstaller, par exemple lors du passage à l'utilisation de conteneurs [[:docker]], il faut : | ||
+ | <code bash> | ||
+ | # arrêtez le service s'il est lancé | ||
+ | sudo systemctl stop postgresql | ||
+ | # lister les paquets installés liés à postgres : | ||
+ | dpkg -l | grep postgres | ||
+ | # et les supprimer : | ||
+ | sudo apt --purge remove postgresql-* | ||
+ | </code> | ||
+ | |||
+ | ===== Configuration ===== | ||
+ | ==== L'utilisateur postgres et psql ==== | ||
PostgreSQL est un serveur qui permet de se connecter à différentes bases de données. Par défaut, seul l'utilisateur //postgres// peut se connecter. | PostgreSQL est un serveur qui permet de se connecter à différentes bases de données. Par défaut, seul l'utilisateur //postgres// peut se connecter. | ||
Ligne 82: | Ligne 94: | ||
Vous devriez obtenir quelque chose comme : | Vous devriez obtenir quelque chose comme : | ||
<code> | <code> | ||
- | psql (9.5.10) | + | psql (13.1-1) |
Type "help" for help. | Type "help" for help. | ||
Ligne 100: | Ligne 112: | ||
Cette ligne de commande sera bien sûr utilisée pour exécuter des requêtes SQL, et aussi des commandes internes à postgreSQL (elles commencent toutes par un antislash) | Cette ligne de commande sera bien sûr utilisée pour exécuter des requêtes SQL, et aussi des commandes internes à postgreSQL (elles commencent toutes par un antislash) | ||
- | Petit guide de survie pour le client psql | + | ==== Guide de survie pour le client psql ==== |
+ | ^ \h | pour l'aide-mémoire des commandes SQL| | ||
+ | ^ \? | pour l'aide-mémoire des commandes psql| | ||
+ | ^ \g | ou point-virgule en fin d'instruction pour exécuter la requête| | ||
+ | ^ \q | pour quitter| | ||
+ | ^ \l | liste les bases de données existantes| | ||
+ | ^ \du | liste les rôles (utilisateur ou groupe)| | ||
+ | ^ \c nom_base nom_utilisateur | connecte à la base <nom_base> avec le rôle <nom_utilisateur>| | ||
+ | ^ \lt | liste les tables de la base courante| | ||
+ | ^ set search_path to <mon_schéma>; | intéressant à faire avant la commande ci-dessous !-)| | ||
+ | ^ \d | liste les tables du schéma courant| | ||
+ | ^ \d nom_table_ou_vue | description de la table <nom_table> (colonne, type…) ou de la vue nom_vue| | ||
+ | ^ \d+ nom_table_ou_vue | description complète (avec commentaires!) de la table <nom_table> (colonne, type…) ou de la vue nom_vue avec son code source| | ||
+ | ^ \sv nom_vue | à la différence de \d+, n'affiche que le code source de la vue| | ||
+ | ^ \dn | liste tout le schéma de la base courante| | ||
+ | ^ \h ALTER TABLE | affiche l'aide pour la commande ALTER TABLE| | ||
+ | |||
+ | Pour lister les tables d'un schéma : | ||
+ | <code sql> | ||
+ | select t.table_name | ||
+ | from information_schema.tables t | ||
+ | where t.table_schema = 'nom_schema' -- remplacer le nom du schema ici | ||
+ | and t.table_type = 'BASE TABLE' | ||
+ | order by t.table_name; | ||
+ | </code> | ||
+ | |||
+ | Lister les vues : | ||
+ | <code sql> | ||
+ | select schemaname, viewname from pg_catalog.pg_views where schemaname NOT IN ('pg_catalog', 'information_schema') order by schemaname, viewname; | ||
+ | </code> | ||
+ | |||
+ | Lister les fonctions d'un schéma (**monSchema** dans l'exemple ci-dessous, à adapter) ((src: https://stackoverflow.com/a/1347639/6614155)) : | ||
+ | <code sql> | ||
+ | SELECT routines.routine_name, parameters.data_type, parameters.ordinal_position | ||
+ | FROM information_schema.routines | ||
+ | LEFT JOIN information_schema.parameters ON routines.specific_name=parameters.specific_name | ||
+ | WHERE routines.specific_schema='monSchema' | ||
+ | ORDER BY routines.routine_name, parameters.ordinal_position; | ||
+ | </code> | ||
+ | |||
+ | Lister les droits (//\du// est très limité !) : | ||
<code> | <code> | ||
- | \h pour l'aide-mémoire des commandes SQL | + | select grantee, table_catalog, table_schema, table_name, string_agg(privilege_type, ', ' order by privilege_type) as privileges from information_schema.role_table_grants where grantee != 'postgres' group by grantee, table_catalog, table_schema, table_name; |
- | \? pour l'aide-mémoire des commandes psql | + | </code> |
- | \g ou point-virgule en fin d'instruction pour exécuter la requête | + | |
- | \q pour quitter | + | et si besoin : |
+ | <code sql> | ||
+ | REVOKE ALL ON SCHEMA mon_schema FROM mon_role; | ||
</code> | </code> | ||
====Supprimer l'utilisateur Postgres du greeter sous xubuntu 14.04.1==== | ====Supprimer l'utilisateur Postgres du greeter sous xubuntu 14.04.1==== | ||
La suppression de l'utilisateur postgres dans le cas d'un greeter lightdm-webkit-greeter.\\ | La suppression de l'utilisateur postgres dans le cas d'un greeter lightdm-webkit-greeter.\\ | ||
Aller dans le répertoire **/var/lib/AccountsService/users/** .\\ | Aller dans le répertoire **/var/lib/AccountsService/users/** .\\ | ||
- | Créer un fichier text puis nommé-le **postgres** (nom de l'utilisateur postgres).\\ | + | Créer un fichier text puis nommez-le **postgres** (nom de l'utilisateur postgres).\\ |
Puis y ajouter le contenu suivant : | Puis y ajouter le contenu suivant : | ||
<code> | <code> | ||
Ligne 151: | Ligne 205: | ||
... | ... | ||
</code> | </code> | ||
- | Puis redémarrez le serveur PostgreSQL: | + | Puis redémarrez le serveur PostgreSQL: |
<code> | <code> | ||
$ sudo service postgresql restart | $ sudo service postgresql restart | ||
Ligne 167: | Ligne 221: | ||
sudo pg_createcluster 9.3 main | sudo pg_createcluster 9.3 main | ||
</code> | </code> | ||
- | Puis redémarrez le serveur PostgreSQL: | + | Puis redémarrez le serveur PostgreSQL: |
<code> | <code> | ||
$ sudo service postgresql restart | $ sudo service postgresql restart | ||
Ligne 181: | Ligne 235: | ||
=== jeux de caractères par défaut === | === jeux de caractères par défaut === | ||
- | * Connexion en tant qu'utilisateur postgres | + | * Connexion en tant qu'utilisateur postgres |
sudo -i -u postgres | sudo -i -u postgres | ||
Ligne 198: | Ligne 252: | ||
* Identifier la version et le nom de votre cluster | * Identifier la version et le nom de votre cluster | ||
- | + | <code> | |
- | pg_lsclusters | + | $ pg_lsclusters |
Version Cluster Port Status Owner Data directory Log file | Version Cluster Port Status Owner Data directory Log file | ||
9.1 main 5432 online postgres /var/lib/postgresql/9.1/main /var/log/postgresql/postgresql-9.1-main.log | 9.1 main 5432 online postgres /var/lib/postgresql/9.1/main /var/log/postgresql/postgresql-9.1-main.log | ||
+ | </code> | ||
* Supprimer le cluster | * Supprimer le cluster | ||
Ligne 212: | Ligne 266: | ||
* Démarrage | * Démarrage | ||
+ | |||
pg_ctlcluster 9.1 main start | pg_ctlcluster 9.1 main start | ||
Les bases systèmes seront alors conformes aux locales système | Les bases systèmes seront alors conformes aux locales système | ||
- | | + | <code> |
- | psql -l | + | $ psql -l |
List of databases | List of databases | ||
Name | Owner | Encoding | Collate | Ctype | Access privileges | Name | Owner | Encoding | Collate | Ctype | Access privileges | ||
Ligne 225: | Ligne 280: | ||
template1 | postgres | UTF8 | fr_FR.UTF-8 | fr_FR.UTF-8 | =c/postgres + | template1 | postgres | UTF8 | fr_FR.UTF-8 | fr_FR.UTF-8 | =c/postgres + | ||
| | | | | postgres=CTc/postgres | | | | | | postgres=CTc/postgres | ||
+ | </code> | ||
Ligne 236: | Ligne 291: | ||
Par facilité, nous allons assimiler les utilisateurs du système à ceux qui se connecteront avec psql, mais ce n'est nullement obligatoire. Par la suite, nous supposerons que votre login système est ''nom_utilisateur''. | Par facilité, nous allons assimiler les utilisateurs du système à ceux qui se connecteront avec psql, mais ce n'est nullement obligatoire. Par la suite, nous supposerons que votre login système est ''nom_utilisateur''. | ||
- | Commencez par créer un nouvel utilisateur, qui portera par exemple le même nom que vous. Dans la ligne de commande ci-dessous, tapez (rappel : la partie « postgres=# » est l'invite de commande, il ne faut pas la retaper ! Ainsi, la commande ci-dessous requiert de taper « CREATE USER <nom_utilisateur>; », en remplaçant <nom_utilisateur> par un identifiant bien choisi) : | + | Commencez par créer un nouvel utilisateur, qui portera par exemple le même nom que vous. Dans la ligne de commande ci-dessous, tapez (rappel : la partie « postgres=# » est l'invite de commande, il ne faut pas la retaper ! Ainsi, la commande ci-dessous requiert de taper « CREATE ROLE <nom_utilisateur>; », en remplaçant <nom_utilisateur> par un identifiant bien choisi) : |
<code> | <code> | ||
- | postgres=# CREATE USER <nom_utilisateur>; | + | postgres=# CREATE ROLE <nom_utilisateur> LOGIN; |
</code> | </code> | ||
N'oubliez pas le point-virgule à la fin... | N'oubliez pas le point-virgule à la fin... | ||
Ligne 245: | Ligne 300: | ||
Donnez-lui la possibilité de créer de nouvelles bases de données : | Donnez-lui la possibilité de créer de nouvelles bases de données : | ||
<code> | <code> | ||
- | postgres=# ALTER ROLE <nom_utilisateur> WITH CREATEDB; | + | postgres=# ALTER ROLE <nom_utilisateur> CREATEDB; |
</code> | </code> | ||
Ligne 260: | Ligne 315: | ||
Attribuer un mot de passe à l'utilisateur pour qu'il puisse se connecter à la base (le ENCRYPTED permet l'utilisation de md5 dans le pg_hba.conf) : | Attribuer un mot de passe à l'utilisateur pour qu'il puisse se connecter à la base (le ENCRYPTED permet l'utilisation de md5 dans le pg_hba.conf) : | ||
<code> | <code> | ||
- | postgres=# ALTER USER <nom_utilisateur> WITH ENCRYPTED PASSWORD 'mon_mot_de_passe'; | + | postgres=# ALTER ROLE <nom_utilisateur> WITH ENCRYPTED PASSWORD 'mon_mot_de_passe'; |
</code> | </code> | ||
Ligne 269: | Ligne 324: | ||
</code> | </code> | ||
- | La ligne de commande est devenue : | + | La ligne de commande est devenue : |
<code> | <code> | ||
nom_base_de_donnee=> | nom_base_de_donnee=> | ||
Ligne 276: | Ligne 331: | ||
Notez la transformation du # en > : vous n'êtes plus superutilisateur... | Notez la transformation du # en > : vous n'êtes plus superutilisateur... | ||
+ | <note tip>Il peut être plus simple pour commencer d'utiliser la commande **createuser --interactive <nom-utilisateur>** en ligne de commande (hors psql) qui est interactive et vous demande les autorisations à y associer (LOGIN, SUPERUSER, CREATEDB, CREATEROLE…)</note> | ||
==== Pour aller plus loin ==== | ==== Pour aller plus loin ==== | ||
Ligne 281: | Ligne 337: | ||
=== Méthode alternative pour créer un utilisateur === | === Méthode alternative pour créer un utilisateur === | ||
- | Vous pouvez aussi créer vos utilisateurs directement en ligne de commande, depuis le terminal standard, mais en étant connecté en tant que postgres, bien sûr. | + | Vous pouvez aussi créer vos utilisateurs directement en ligne de commande, depuis le terminal standard. Pour cela, vous allez d'abord autoriser les connexions avec mot de passe chiffré, puis vous vous connecterez en tant que postgres (l'administrateur par défaut de Postgres) et créerez un nouvel utilisateur. |
Cette méthode est beaucoup plus sûre que la précédente. | Cette méthode est beaucoup plus sûre que la précédente. | ||
Ligne 287: | Ligne 343: | ||
(Ce qui n'est pas le cas lorsque l'on emploie la méthode précédente) | (Ce qui n'est pas le cas lorsque l'on emploie la méthode précédente) | ||
- | Il faut d'abord modifier le fichier de configuration pour autoriser les connexions via mot de passe chiffré : | + | Il faut d'abord modifier le fichier de configuration pour autoriser les connexions via mot de passe chiffré (sur les versions récentes, au moins la 12, ça ne semble pas nécessaires) : |
<code> | <code> | ||
sudo nano /etc/postgresql/x.x/main/pg_hba.conf | sudo nano /etc/postgresql/x.x/main/pg_hba.conf | ||
Ligne 295: | Ligne 351: | ||
Les utilisateurs "avancés" noteront que le fichier est amplement commenté. | Les utilisateurs "avancés" noteront que le fichier est amplement commenté. | ||
- | Voir la [[http://www.postgresql.org/docs/8.2/static/index.html|documentation]] pour plus d'informations. | + | Voir la [[https://www.postgresql.org/docs/8.2/static/index.html|documentation]] pour plus d'informations. |
<note important>Si vous modifiez les paramètres de la sécurité, avant de relancer postgresql pensez à donner un mot de passe à l'utilisateur postgres (voir plus bas)</note> | <note important>Si vous modifiez les paramètres de la sécurité, avant de relancer postgresql pensez à donner un mot de passe à l'utilisateur postgres (voir plus bas)</note> | ||
- | Modifier le fichier en remplaçant **ident sameuser** par **md5** afin d'obtenir les lignes suivantes : | + | Modifier le fichier en remplaçant **ident sameuser** par **md5** afin d'obtenir les lignes suivantes : |
<code> | <code> | ||
Ligne 356: | Ligne 412: | ||
</code> | </code> | ||
- | ou, si le nom de la base de l'utilisateur n'est pas le même que celui de l'utilisateur : | + | ou, si le nom de la base de l'utilisateur n'est pas le même que celui de l'utilisateur : |
<code> | <code> | ||
$ psql -U <nom_utilisateur> <nom_database_de_l_utilisateur> | $ psql -U <nom_utilisateur> <nom_database_de_l_utilisateur> | ||
Ligne 375: | Ligne 431: | ||
... | ... | ||
- | La variable PGUSER étant ainsi définie, votre connexion peut alors se résumer à | + | La variable PGUSER étant ainsi définie, votre connexion peut alors se résumer à |
psql <nom_database> | psql <nom_database> | ||
et si vous définissez PGDATABASE, votre connexion express sera simplement | et si vous définissez PGDATABASE, votre connexion express sera simplement | ||
Ligne 390: | Ligne 446: | ||
Ce fichier n'existe pas par défaut, il vous faut donc le créer. | Ce fichier n'existe pas par défaut, il vous faut donc le créer. | ||
nano ~/.pgpass | nano ~/.pgpass | ||
- | Son contenu est simplement défini par les chaînes de connexions à utiliser. | + | Son contenu est simplement défini par les chaînes de connexions à utiliser. |
localhost:5432:*:nomutilisateur:motdepasse | localhost:5432:*:nomutilisateur:motdepasse | ||
Ceci indiquera à votre client psql que l'utilisateur //nomutilisateur// accompagné du mot de passe //modepasse// est à utiliser pour la connexion à toutes //*// les bases de données de votre serveur //localhost// sur le port //5432// (port standard postgresql). | Ceci indiquera à votre client psql que l'utilisateur //nomutilisateur// accompagné du mot de passe //modepasse// est à utiliser pour la connexion à toutes //*// les bases de données de votre serveur //localhost// sur le port //5432// (port standard postgresql). | ||
Ligne 404: | Ligne 460: | ||
=== Personnalisation === | === Personnalisation === | ||
- | Le tuning d'un serveur postgreSQL se fait grâce au fichier **postgresql.conf** généralement positionné dans **/etc/postgresql/9.1/main/** | + | Le tuning d'un serveur postgreSQL se fait grâce au fichier **postgresql.conf** généralement positionné dans **/etc/postgresql/X.x/main/**, X.x étant la version utilisée de postgreSQL. |
Plusieurs paramètres sont faciles à modifier et peuvent apporter un gain de performance important: | Plusieurs paramètres sont faciles à modifier et peuvent apporter un gain de performance important: | ||
Ligne 423: | Ligne 479: | ||
Les droits affectés à ces rôles permet une gestion fine des autorisations d'accès aux différents objets de la base de données (tables, vues, fonctions, champs...) | Les droits affectés à ces rôles permet une gestion fine des autorisations d'accès aux différents objets de la base de données (tables, vues, fonctions, champs...) | ||
- | La [[http://docs.postgresql.fr/9.1/user-manag.html|documentation postgresql]] est explicite à ce sujet, le mieux est de la consulter ! | + | La [[https://docs.postgresql.fr/9.1/user-manag.html|documentation postgresql]] est explicite à ce sujet, le mieux est de la consulter ! |
=== Gestion des connexions === | === Gestion des connexions === | ||
Ligne 431: | Ligne 487: | ||
La documentation complète est disponible à ces adresses | La documentation complète est disponible à ces adresses | ||
- | //[[http://docs.postgresql.fr/9.1/runtime-config-connection.html|/etc/postgresql/x.x/main/postgresql.conf]]// | + | //[[https://docs.postgresql.fr/9.1/runtime-config-connection.html|/etc/postgresql/x.x/main/postgresql.conf]]// |
- | //[[http://docs.postgresql.fr/9.1/client-authentication.html|/etc/postgresql/x.x/main/pg_hba.conf]]// | + | //[[https://docs.postgresql.fr/9.1/client-authentication.html|/etc/postgresql/x.x/main/pg_hba.conf]]// |
Ligne 457: | Ligne 513: | ||
ALTER USER <nom_utilisateur> set default_transaction_read_only = on; | ALTER USER <nom_utilisateur> set default_transaction_read_only = on; | ||
</code> | </code> | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
===== Installation de la cartouche spatiale PostGIS ===== | ===== Installation de la cartouche spatiale PostGIS ===== | ||
- | ====Ce qu'est postgis==== | + | Reportez-vous à la page [[:postgis]] |
- | [[http://postgis.refractions.net/|Postgis]] est une extension de postgresql qui permet la gestion d'objets géographiques. Concrètement la cartouche spatiale postgis ajoute au serveur : | + | |
- | * la possibilité de définir le type de champ //geometry// | + | |
- | * l'ensemble des fonctions permettant les traitements géographiques | + | |
- | * la base de référence des projections géographiques //spatial_ref_sys// | + | |
- | * la base de gestion des attributs géographiques des tables //geometry_columns// | + | |
- | ====Installation==== | + | |
- | Installer le paquet le paquet [[apt://postgresql-9.1-postgis|postgresql-9.1-postgis]] | + | |
- | <code> | + | ===== Clients graphiques ===== |
- | Les paquets supplémentaires suivants seront installés : | + | |
- | libgeos-3.2.2 libgeos-c1 libproj0 postgis proj-data | + | |
- | </code> | + | |
- | Les scripts nécessaires à la capacitation géographique de postgresql sont installé dans le dossier // /usr/share/postgresql/9.1/contrib/postgis-1.5/// | + | ==== DBeaver ==== |
+ | Si vous utilisez d'autres types de base de données, cette solution a l'avantage de les supporter,\\ voir la page [[:dbeaver]] | ||
- | ====Donner à une base la capacité géographique==== | ||
- | |||
- | |||
- | <note> | ||
- | Les scripts donnés ci-après prennent pour hypothèse qu'un nouvel utilisateur a été créé avec la méthode [[postgresql#pour_aller_plus_loin|recommandée]] | ||
- | </note> | ||
- | |||
- | Tout d'abord, créer la base de données en question | ||
- | createdb -U <nom_utilisateur> <nom_base_geo> | ||
- | Puis on utilser le rôle postgres (super user postgresql) | ||
- | $ sudo -i -u postgres | ||
- | pour exécuter dans cet ordre les scripts suivants : | ||
- | |||
- | psql -f /usr/share/postgresql/9.1/contrib/postgis-1.5/postgis.sql <nom_base_geo> | ||
- | psql -f /usr/share/postgresql/9.1/contrib/postgis-1.5/spatial_ref_sys.sql <nom_base_geo> | ||
- | |||
- | puis on quitte le shell postgres | ||
- | exit | ||
- | | ||
- | <note tip> | ||
- | Si vous êtes amenés à créer plusieurs bases géographiques, il peut être intéressant de créer une base qui serve de modèle, par exemple //template_postgis// | ||
- | Il est ensuite très facile de créer une base géographique en appelant ce modèle lors de la création d'un base | ||
- | createdb -U <nom_utilisateur> -T template_postgis <nom_base_geo> | ||
- | </note> | ||
- | |||
- | Pour faire des imports et des exports (car la fonction sur phppgadmin est bancale) : | ||
- | |||
- | $ sudo -i -u postgres | ||
- | |||
- | export : | ||
- | pg_dump <nom_de_la_base> > nom_de_la_base.pgdump | ||
- | |||
- | import: | ||
- | cat nom_de_la_base.pgdump | psql -d nom_de_la_base | ||
- | |||
- | ===== Clients graphiques ===== | ||
+ | ==== Le client pgadmin4 ==== | ||
+ | Outils web graphique d'administration de vos bases | ||
+ | <code bash> | ||
+ | sudo apt install postgresql-common | ||
+ | sudo sh /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh | ||
+ | sudo apt update | ||
+ | sudo apt install postgresql-11 pgadmin4 | ||
+ | </code>((source (EN) [[https://wiki.postgresql.org/wiki/Apt]])) | ||
+ | puis simplement lancer pgadmin4 via le lanceur qui a été ajouté ou en CLI | ||
==== Le client pgadmin3 ==== | ==== Le client pgadmin3 ==== | ||
Ligne 525: | Ligne 537: | ||
PgAdmin III est un outil graphique d'administration de votre serveur PostgreSQL. L'application pgAdmin III peut être utilisé pour administrer les serveurs PostgreSQL 7.3 et les versions supérieures. PgAdmin III existe pour toutes les plateformes dont, évidemment, Ubuntu, KUbuntu, XUbuntu. | PgAdmin III est un outil graphique d'administration de votre serveur PostgreSQL. L'application pgAdmin III peut être utilisé pour administrer les serveurs PostgreSQL 7.3 et les versions supérieures. PgAdmin III existe pour toutes les plateformes dont, évidemment, Ubuntu, KUbuntu, XUbuntu. | ||
- | PgAdmin III a été conçu pour répondre aux besoins de tous les utilisateurs, depuis la rédaction de simple requêtes SQL au développement complexe de base de données. L'interface graphique supporte toutes les fonctionnalités de PostGreSQL et permet une administration simple. L'application inclut aussi un éditeur de requête avec coloration syntaxique, un éditeur de code, un agent de gestion de tâche automatique, un support pour les réplication via Slony-I et bien d'autres fonctionnalités. | + | PgAdmin III a été conçu pour répondre aux besoins de tous les utilisateurs, depuis la rédaction de simple requêtes SQL au développement complexe de base de données. L'interface graphique supporte toutes les fonctionnalités de PostGreSQL et permet une administration simple. L'application inclut aussi un éditeur de requête avec coloration syntaxique, un éditeur de code, un agent de gestion de tâche automatique, un support pour les réplication via Slony-I et bien d'autres fonctionnalités. |
== Installation du client pgadmin3 == | == Installation du client pgadmin3 == | ||
Ligne 534: | Ligne 546: | ||
Cela va également installer les paquets suivants : | Cela va également installer les paquets suivants : | ||
* libpq4 | * libpq4 | ||
- | * libwxbase2.6-0 | + | * libwxbase2.6-0 |
* libwxgtk2.6-0 | * libwxgtk2.6-0 | ||
* pgadmin3-data | * pgadmin3-data | ||
Ligne 544: | Ligne 556: | ||
== Lancement du client pgadmin3 == | == Lancement du client pgadmin3 == | ||
- | Sous Ubuntu, pour lancer PgAdmin III, aller dans le menu **Applications** => **programmation** => **pgAdmin III** | + | Sous Ubuntu, pour lancer PgAdmin III, aller dans le menu **Applications** => **programmation** => **pgAdmin III** |
<note>**Remarque:** | <note>**Remarque:** | ||
Ligne 583: | Ligne 595: | ||
| [[apt://phppgadmin|{{ :apt.png |Installer en 1 clic.}}]] | | | [[apt://phppgadmin|{{ :apt.png |Installer en 1 clic.}}]] | | ||
- | Réaliser ensuite les opérations suivantes : | + | Réaliser ensuite les opérations suivantes : FIXME (sous [[bionic]], pas de fichier //apache.conf// mais //config.inc.php// ! |
<code> | <code> | ||
sudo ln -s /etc/phppgadmin/apache.conf /etc/apache2/conf.d/phppgadmin.conf | sudo ln -s /etc/phppgadmin/apache.conf /etc/apache2/conf.d/phppgadmin.conf | ||
Ligne 606: | Ligne 618: | ||
====Connexions vers PHP==== | ====Connexions vers PHP==== | ||
- | [[:tutoriel/comment_installer_un_paquet|installer|Installer le paquet]] php-pgsql. | + | [[:tutoriel/comment_installer_un_paquet|installer|Installer le paquet]] [[apt://php-pgsql|php-pgsql]] |
<note>Il faut recharger Apache après avoir installé ce module : sudo service apache2 reload</note> | <note>Il faut recharger Apache après avoir installé ce module : sudo service apache2 reload</note> | ||
- | php5-pdo (voir la documentation officielle pour [[http://php.net/pdo|PDO]]) : | + | Activer ce module |
- | <code>sudo pear install pecl-pdo_pgsql</code> | + | <code>sudo phpenmod pdo_pgsql</code> |
- | + | Redémarrer apache2 | |
- | PHP 5.2 : cela se fait automatiquement. | + | |
- | + | ||
- | > FIXME : à compléter. | + | |
====Pool de connexion : PgBouncer==== | ====Pool de connexion : PgBouncer==== | ||
[[pgbouncer|PgBouncer]] | [[pgbouncer|PgBouncer]] | ||
Ligne 672: | Ligne 680: | ||
</code> | </code> | ||
- | <note tip>L'option ''--owner=NOM_APPLI'' de la troisième commande suppose que vous avez configuré un utilisateur système pour votre application</note> | + | <note tip>L'option ''%%--%%owner=NOM_APPLI'' de la troisième commande suppose que vous avez configuré un utilisateur système pour votre application</note> |
===== Formations ===== | ===== Formations ===== | ||
La société Dalibo mets ses support de cours à disposition ([[https://creativecommons.org/licenses/by-nc-sa/2.0/fr/|CC BY NC SA]]):\\ | La société Dalibo mets ses support de cours à disposition ([[https://creativecommons.org/licenses/by-nc-sa/2.0/fr/|CC BY NC SA]]):\\ | ||
- | [[https://www.dalibo.com//formations]]\\ | + | [[https://www.dalibo.com/formations]]\\ |
sous l'intitulé de chaque formation, vous trouvez les liens pour télécharger le support au format [[pdf|PDF]] ou [[epub|EPUB]]\\ | sous l'intitulé de chaque formation, vous trouvez les liens pour télécharger le support au format [[pdf|PDF]] ou [[epub|EPUB]]\\ | ||
exemple: lien directe au support PDF de la formation //DBA1 - PostgreSQL Administration// : [[https://dali.bo/dba1_pdf]] | exemple: lien directe au support PDF de la formation //DBA1 - PostgreSQL Administration// : [[https://dali.bo/dba1_pdf]] | ||
+ | ===== Voir aussi ===== | ||
+ | * [[https://www.pgmodeler.io|PgModeler]] qui permet de définir le modèle et générer les scripts de mise à jour de la base postgresql, installable depuis les dépôts <code bash>sudo apt install pgmodeler</code> | ||
---- | ---- | ||
- | //Contributeurs : [[utilisateurs:yannick_LM|Yannick]], [[utilisateurs:sparky|Sparky]], [[utilisateurs:elemmire|Elemmire]], [[utilisateurs:aldian|Aldian]], [[utilisateurs:fred|Fred]],[[utilisateurs:xavierjm|XAVIER_jean-marie]]. // | + | //Contributeurs : [[utilisateurs:yannick_LM|Yannick]], [[utilisateurs:sparky|Sparky]], [[utilisateurs:elemmire|Elemmire]], [[utilisateurs:aldian|Aldian]], [[utilisateurs:fred|Fred]], [[utilisateurs:xavierjm|XAVIER_jean-marie]], [[utilisateurs:bcag2|bcag2]] // |