Changer le port PostgreSQL à l'aide de la ligne de commande

10

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

J'ai déjà vu cette solution: /programming/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?

Nick Hung
la source

Réponses:

9

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

Vous pouvez utiliser un outil d'édition de texte par programme pour modifier postgresql.confsi vous avez besoin d'automatiser cela. Sur une boîte Linux / Unix, vous utiliseriez un outil comme sedou 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 les outils comme PgAdmin-IIIpour utiliser le nouveau port.

Si vous démarriez PostgreSQL manuellement, pg_ctlvous pouvez définir la PGPORTvariable d'environnement ou passer une option de configuration sur la ligne de commande. Cela ne fonctionnera pas lorsque vous le lancerez en tant que service Windows.

Craig Ringer
la source
J'utilise "Swiss File Knife" pour effectuer le remplacement des fichiers texte sous Windows.
a_horse_with_no_name
@a_horse_with_no_name Outil utile lorsque vous n'avez pas fileutils / coreutils / etc; Merci pour le conseil.
Craig Ringer
Je ne peux donc pas utiliser la ligne de commande pour changer le port pgsql dans Windows?
Nick Hung
@NickHung Oui, comme expliqué ci-dessus, vous pouvez utiliser un processeur de texte pour modifier le fichier de configuration, ou ne pas exécuter PostgreSQL en tant que service Windows et le démarrer à la place pg_ctl.
Craig Ringer
7
  • 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 la show portrequête. 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.

shamseer pc
la source
0

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 au postgresql.conffichier.

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 bon chemin)

La première echocommande 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 danspostgresql.conf sera remplacée par celle du fichier de configuration personnalisé.

un cheval sans nom
la source