web-dev-qa-db-fra.com

Modification du port PostgreSQL à l'aide de la ligne de commande

Mon port par défaut PostgreSQL est 5432, je veux changer de port par défaut en utilisant la ligne de commande (sous Windows 7).

J'ai vu cette solution avant: https://stackoverflow.com/questions/187438/want-to-change-pgsql-port

J'ai essayé d'exécuter la commande suivante, mais elle a échoué:

postgres --p 5431

Quelqu'un pourrait-il me dire comment changer de port en utilisant la ligne de commande?

10
Nick Hung

Étant donné que vous utilisez Windows et que vous démarrez probablement PostgreSQL en tant que service Windows, vous devrez modifier postgresql.conf (à l'intérieur de votre répertoire de données) pour y définir le nouveau port, puis redémarrez le service postgresql à l'aide du panneau de configuration Services ou (en tant qu'administrateur) net service commande.

Vous pouvez utiliser un outil d'édition de texte par programme pour modifier postgresql.conf si vous devez automatiser cela. Sur une boîte Linux/Unix, vous utiliseriez un outil comme sed ou awk, mais sous Windows, j'imagine que vous utiliserez VBS, PowerShell ou un outil complémentaire comme Perl.

Vous devrez modifier les paramètres de connexion dans des outils tels que PgAdmin-III pour utiliser le nouveau port.

Si vous démarriez PostgreSQL manuellement à l'aide de pg_ctl vous pouvez définir la variable d'environnement PGPORT ou passer une option de configuration sur la ligne de commande. Cela ne fonctionnera pas lorsque vous le lancerez en tant que service Windows.

9
Craig Ringer
  • allez dans ..\PostgreSQL\9.0\data et ouvrez le fichier postgresql.conf dans l'éditeur de texte/bloc-notes
  • rechercher le paramètre de port .eg: port = 5433
  • éditez ceci à votre numéro de port.
  • allez exécuter le type services.msc et redémarrez le service postgresql.

vous pouvez vérifier si le paramètre est défini ou non via l'outil de requête. exécutez simplement show port requete. il affichera votre numéro de port actuel. Si vous utilisez pgAdmin pour vous connecter à db, assurez-vous d'avoir changé votre numéro de port dans les paramètres de connexion.

7
shamseer pc

Une solution qui ne nécessite aucun remplacement de texte ou des techniques similaires consiste à configurer les différents ports dans un fichier de configuration distinct, puis à ajouter une directive include à la postgresql.conf fichier.

par exemple.

echo port = 5431 > \path\to\datadir\custom.conf
echo include custom.conf>> \path\to\datadir\postgresql.conf

(Bien sûr \path\to\datadir\ doit être remplacé par le chemin correct)

La première commande echo crée un nouveau fichier avec juste la configuration du port. Le second ajoute une directive include au fichier de configuration postgres existant. Les paramètres "ultérieurs" remplaçant les paramètres "antérieurs" du fichier, toute configuration de port effectuée dans postgresql.conf sera remplacé par celui du fichier de configuration personnalisé.