web-dev-qa-db-fra.com

Créer un lien symbolique pour Postgres

En tant que développeur, je ssh souvent directement dans ma base de données locale, juste pour tester mon application avant de pousser mon code.

Cependant, je trouve que chaque fois que je veux accéder à Postgres, je dois taper

postgres@ubuntu:~$ /usr/local/pgsql/bin/psql test

alors que sur ma machine de travail, je n'ai qu'à taper

postgres@ubuntu:~$ psql --dbname=test --username=user

J'ai essayé de créer un lien symbolique, qui a réussi, mais chaque fois que j'essaie de me connecter via ce raccourci, j'obtiens le message d'erreur suivant:

psql: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

Comment puis-je faire fonctionner cela? Au cas où cela ferait une différence, j'utilise une version auto-compilée de la série 9.1.x.

EDIT: Je sais maintenant que ce n'est pas vraiment un lien symbolique, mais je ne suis pas sûr de son nom, ou je suis sûr que je l'aurais déjà trouvé sur Google. Fondamentalement, je veux qu'il s'exécute à partir du shell en tapant psql [OPTIONS] comme rvm [OPTIONS] ou Ruby [OPTIONS].

Je sais qu'il y a un paquet nommé postgresql-client-common & un tas d'autres packages Postgres via apt-get, mais je préférerais ne pas utiliser le apt-get version pour que je puisse mettre à jour Postgres à la volée.

2
Edwin

S'il s'agit simplement d'appeler directement psql, vous devez vous assurer que le chemin "/ usr/local/pgsql/bin" est inclus dans $ PATH lorsque vous vous connectez. Souvent, cela a à voir avec la définition appropriée de la variable PATH dans dans/etc/profile (ou ~/.profile) ou si vous utilisez bash, ce serait/etc/bashrc ou ~/.bashrc.

par exemple.

export PATH = "$ PATH:/usr/local/psql/bin"

De plus .. la commande psql attend les arguments comme suit; psql <dbname> <username> (vous pouvez utiliser --flags pour spécifier la même chose).

Si vous fournissez "psql test" - alors il supposera le nom d'utilisateur de l'utilisateur actuel (comme vu par la commande whoami).

J'espère que cela t'aides.

4
papashou

Pourquoi ne pas utiliser l'alias Linux?

alias psql=/usr/local/pgsql/bin/psql

Pour créer un alias permanent, mettez simplement cette ligne dans

~/.bashrc or ~/.bash_profile
3
masterdam79