MISE À JOUR FINALE:
J'avais oublié d'exécuter la initdb
commande.
</ MISE À JOUR FINALE>
en exécutant cette commande
ps auxwww | grep postgres
Je vois que postgres ne fonctionne pas
> ps auxwww | grep postgres
remcat 1789 0.0 0.0 2434892 480 s000 R+ 11:28PM 0:00.00 grep postgres
cela soulève la question: comment démarrer le serveur postgresql?
mise à jour:
>pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
server starting
sh: /usr/local/var/postgres/server.log: No such file or directory
mise à jour 2:
Le toucher n'a pas réussi, j'ai donc fait ceci à la place:
> mkdir /usr/local/var/postgres
> vi /usr/local/var/postgres/server.log
> ls /usr/local/var/postgres/
server.log
Mais quand j'essaie de démarrer le serveur rails, je vois toujours ceci:
Is the server running on host "localhost" and accepting
TCP/IP connections on port 5432?
mise à jour 3:
> pg_ctl -D /usr/local/var/postgres status
pg_ctl: no server running
mise à jour 4:
J'ai trouvé qu'il n'y avait PAS de pg_hba.conf (seulement pg_hba.conf.sample), j'ai donc modifié l'échantillon et l'ai renommé (pour supprimer le .sample). Voici le contenu:
# IPv4 local connections:
host all all 127.0.0.1/32 trust
# IPv6 local connections:
host all all ::1/128 trust
mais je ne comprends pas ceci:
> pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
server starting
> pg_ctl -D /usr/local/var/postgres status
pg_ctl: no server running
aussi:
sudo find / -name postgresql.conf
find: /dev/fd/3: Not a directory
find: /dev/fd/4: Not a directory
mise à jour 5:
sudo pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
Password:
pg_ctl: cannot be run as root
Please log in (using, e.g., "su") as the (unprivileged) user that will own the server process.
mise à jour 6:
cela semble étrange:
> egrep 'listen|port' /usr/local/var/postgres/postgresql.conf
egrep: /usr/local/var/postgres/postgresql.conf: No such file or directory
cependant, je l'ai fait:
>sudo find / -name "*postgresql.conf*"
find: /dev/fd/3: Not a directory
find: /dev/fd/4: Not a directory
/usr/local/Cellar/postgresql/9.0.4/share/postgresql/postgresql.conf.sample
/usr/share/postgresql/postgresql.conf.sample
alors j'ai fait ça:
egrep 'listen|port' /usr/local/Cellar/postgresql/9.0.4/share/postgresql/postgresql.conf.sample
#listen_addresses = 'localhost' # what IP address(es) to listen on;
#port = 5432 # (change requires restart)
# supported by the operating system:
# %r = remote host and port
j'ai donc essayé ceci:
> cp /usr/local/Cellar/postgresql/9.0.4/share/postgresql/postgresql.conf.sample /usr/local/Cellar/postgresql/9.0.4/share/postgresql/postgresql.conf
> cp /usr/share/postgresql/postgresql.conf.sample /usr/share/postgresql/postgresql.conf
toujours le même "Le serveur fonctionne-t-il?" message.
la source
sudo
, c'estsudo pg_ctl...
Réponses:
Le gestionnaire de paquets Homebrew inclut des listes de lancement pour démarrer automatiquement. Pour plus d'informations, exécutez
brew info postgres
.Démarrer manuellement:
pg_ctl -D /usr/local/var/postgres start
Arrêtez manuellement:
pg_ctl -D /usr/local/var/postgres stop
Démarrer automatiquement:
"Pour que launchd lance maintenant postgresql et redémarre à la connexion:"
brew services start postgresql
Quel est le résultat de
pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
?Quel est le résultat de
pg_ctl -D /usr/local/var/postgres status
?Y a-t-il des messages d'erreur dans le fichier server.log?
Assurez-vous que les connexions localhost TCP sont activées dans pg_hba.conf:
Vérifiez les adresses_écoute et le port dans postgresql.conf:
egrep 'listen|port' /usr/local/var/postgres/postgresql.conf
Nettoyer
Postgres a probablement été installé via Homebrew , Fink , MacPorts ou EnterpriseDB installation .
Vérifiez la sortie des commandes suivantes pour déterminer avec quel gestionnaire de packages il a été installé:
la source
brew services start postgresql
- dessous est une réponse plus à jour et plus simple.Si vous souhaitez démarrer et arrêter manuellement postgresql (installé via homebrew), la manière la plus simple est:
et
Si vous avez une version spécifique, assurez-vous de suffixer la version, par exemple:
la source
brew services
plus tôt ... c'est la seule solution qui fonctionne pour moi. <3 merci!brew tap gapple/services
fera fonctionner à nouveau la commande des services de brassagebrew tap homebrew/services
marche encore github.com/Homebrew/homebrew-servicesinitdb
avoir été exécuté avec succès. Sinon, il échoue silencieusement (mais semble avoir fonctionné, avec le service affiché comme démarré enbrew services list
.brew services restart postgresql
, depuis le démarrage de la base de données avec pg_ctl oubrew services start
dit "un autre serveur pourrait être en cours d'exécution" et l'arrêt de la base de données avec pg_ctl bloqué.J'avais presque exactement le même problème, et vous avez cité la commande initdb comme étant le correctif. C'était aussi la solution pour moi, mais je n'ai vu personne l'afficher ici, donc pour ceux qui le recherchent:
la source
rm -rf /usr/local/var/postgres
et ensuite cela a fonctionné pour moichown _your username on your comp_ usr/local/var/postgres
), puis initdb. Après cela, le serveur démarre automatiquement lorsque vous redémarrez (si vous avez suivi les instructions de Homebrew pour cela) ou manuellementpg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
.initdb
(y compris la suppression de l'ancien répertoire si nécessaire),brew services start postgresql
fonctionnerm -rf
tout ce qui se trouve actuellement dans votre base de données vous fait un peu peur, au lieu de le supprimer entièrement, vous pouvez utiliser quelque chose commemv /usr/local/var/postgres /usr/local/var/postgres.backup
pour le déplacer vers un nouveau répertoire de sauvegarde, puis exécutez la commande pour redémarrer la base de données.Si votre ordinateur a été redémarré brusquement
Tout d'abord, vous devez supprimer le fichier
/usr/local/var/postgres/postmaster.pid
Ensuite, vous pouvez redémarrer le service en utilisant l'une des nombreuses autres méthodes mentionnées en fonction de votre installation.Vous pouvez le vérifier en consultant les journaux de Postgres pour voir ce qui pourrait se passer:
tail -f /usr/local/var/postgres/server.log
la source
tail -f /usr/local/var/postgres/server.log
si vous devez supprimer ce fichier. ref coderwall.com/p/zf-fww/…~/homebrew/var/postgres/postmaster.pid
postmaster.pid
si l'ordinateur a été redémarré brutalement?Une autre approche utilise lunchy gem (un wrapper pour launchctl):
Pour démarrer les postgres:
Pour arrêter les postgres:
Pour plus d'informations, reportez-vous à: " Comment installer PostgreSQL sur un Mac avec Homebrew et Lunchy "
la source
Voici mes 2 cents: j'ai fait un alias pour postgres pg_ctl et l'ai mis dans .bash_profile (ma version postgresql est 9.2.4, et le chemin de la base de données est /Library/PostgreSQL/9.2/data).
Lancez un nouveau terminal.
Et alors? Vous pouvez démarrer / arrêter votre serveur postgresql avec ceci:
la source
Le moyen le plus propre de loin pour démarrer / arrêter / redémarrer postgres si vous l'avez installé
brew
est de simplement décharger et / ou charger le fichier de configuration launchd fourni avec l'installation:La première ligne arrêtera les postgres et la deuxième ligne le démarrera. Pas besoin de spécifier de répertoires de données, etc. car tout est dans ce fichier.
la source
brew services start postgres
(et stop). Jetez un-v
à la fin et vous pouvez voir ce qu'il fait.Pour démarrer le serveur postgresql:
pour mettre fin au serveur postgresql:
Vous pouvez également créer un alias via CLI pour vous faciliter la tâche:
Avec ceux-ci, vous pouvez simplement taper "pg-start" pour démarrer Postgres et "pg-stop" pour le fermer.
la source
pg_ctl: directory "/usr/local/var/postgres" is not a database cluster directory
comment résoudre ce problème?À des fins de test, je pense que l'application PostgreSQL est la meilleure option!
Exécutez une application et le serveur est opérationnel. Fermez l'application et le serveur tombe en panne.
http://postgresapp.com/
la source
lorsque vous installez postgresql en utilisant homebrew:
à la fin de la sortie, vous verrez ces méthodes pour démarrer le serveur:
Je pense que c'est la meilleure façon.
Vous pouvez ajouter un alias dans votre .profile pour plus de commodité.
la source
Pour une base de données de test jetable rapide, vous pouvez exécuter le serveur au premier plan.
Initialiser une nouvelle base de données postgres dans un nouveau répertoire
Démarrez le serveur au premier plan (ctrl-C pour arrêter le serveur)
Dans une autre session shell, connectez-vous au serveur
la source
J'ai le même problème et j'effectue toutes les mises à jour depuis le premier message. Mais après vérification du fichier journal:
Je vois la vraie cause:
Après avoir changé l'autorisation sur ce répertoire
le serveur postgres a démarré.
Vérifiez à chaque fois le fichier journal.
la source
PostgreSQL est intégré dans Server.app disponible via l'App Store de Mountain Lion. Cela signifie qu'il est déjà configuré et qu'il vous suffit de le lancer, puis de créer des utilisateurs et des bases de données.
Pointe : ne commencez pas par définir $ PGDATA et ainsi de suite, prenez les emplacements des fichiers tels quels.
Vous auriez ce fichier: /Library/Server/PostgreSQL/Config/org.postgresql.postgres.plist
Commencer:
Le processus a commencé avec des arguments:
/Applications/Server.app/Contents/ServerRoot/usr/bin/postgres_real -D / Library / Server / PostgreSQL / Data -c listen_addresses = 127.0.0.1, :: 1 -c log_connections = on -c log_directory = / Library / Logs / PostgreSQL -c log_filename = PostgreSQL.log -c log_line_prefix =% t -c log_lock_waits = on -c log_statement = ddl -c logging_collector = on -c unix_socket_directory = / private / var / pgsql_socket -c unix_socket_group =_post_70_six
Vous pouvez sudo:
Ou connectez-vous:
Vous pouvez trouver le répertoire de données, la version, l'état d'exécution et ainsi de suite avec
la source
Variation sur cette réponse: https://stackoverflow.com/a/13103603/2394728
la source
À des fins de développement, l'un des moyens les plus simples consiste à installer Postgres.app à partir du site officiel . Il peut être démarré / arrêté à partir du dossier Applications ou à l'aide des commandes suivantes dans le terminal:
la source
killall
n'est probablement pas le meilleur moyen d'arrêter une base de données.la source
Si vous avez installé en utilisant brew, la commande ci-dessous devrait suffire.
Et cela peut parfois ne pas fonctionner, dans ce cas ci-dessous deux commandes devraient définitivement fonctionner
la source
aucune des réponses ci-dessus n'a résolu le problème pour moi malgré les mêmes messages d'erreur. J'ai pu récupérer et exécuter mon instance en supprimant le fichier postmaster.pid existant qui était verrouillé et n'autorisant pas les connexions.
la source
Pour macports, utilisez simplement la commande load / unload et le nom de port du serveur en cours d'exécution:
vous n'avez donc pas à vous rappeler où se trouve le
/Library/LaunchDaemons/org.macports.postgresql96.plist
fichierla source
https://hub.docker.com/_/postgres
la source
Si vous avez installé Postgres à l'aide du programme d'installation EnterpriseDB, alors ce que @Kenial a suggéré est la voie à suivre.
la source
qui a fonctionné pour moi (macOS 10.13)
sudo -u postgres /Library/PostgreSQL/9.6/bin/pg_ctl start -D /Library/PostgreSQL/9.6/data
ou d'abord
cd /Library/PostgreSQL/9.6/bin/
la source
$ brew upgrade postgres
réparé pour moi.
Cela, bien sûr, mettra à niveau votre version postgres et mettra à jour / installera toutes les dépendances.
la source
Pour Mac / OSX, j'aime vraiment LaunchRocket pour cela et d'autres services d'arrière-plan que j'ai utilisés dans le développement.
https://github.com/jimbojsb/launchrocket
Ce site contient de belles instructions sur l'installation: http://macappstore.org/launchrocket/
Cela vous donne un bel écran dans vos Préférences Système qui vous permet de lancer, redémarrer, rooter, lancer à la connexion.
la source
Cela a fonctionné pour moi à chaque fois, inspiré par Craig Ringer:
proctools inclut pkill. Si vous n'avez pas Brew: https://brew.sh/
la source
Par souci d'exhaustivité: vérifiez si vous êtes à l'intérieur d'un
Tmux
ouScreen
instance , le démarrage ne fonctionnera pas à partir de là.De: /superuser/879640/error- while trying- start postgres installed via homebrew operation not permi 898585
Cela l'a résolu pour moi.
la source
Il y a des cas marginaux qui seront peut-être utiles pour quelqu'un:
Il y a une option, que vous aurez postgres.pid rempli de PID. Mais si vous redémarrez votre machine, et avant que le postgress ne revienne, un autre processus prendra ce PID. Si cela se produit, à la fois le statut pg_ctl et le service de brassage interrogés sur le statut postgres, vous diront qu'il est UP. Juste ps aux | grep et vérifier si c'est vraiment postgress
la source
Homebrew est le chemin !!
Pour démarrer le service:
Pour l'énumérer:
pour arrêter le service .:
la source
Si vous ne l'avez pas installé avec brew et directement à partir du package mac, cela a fonctionné pour moi pour PostgreSQL 12 lorsque vous utilisez tous les emplacements, variables, etc. par défaut.
la source
J'étais confronté au même problème. J'ai essayé toutes ces solutions mais aucune n'a fonctionné.
Enfin réussi à le faire fonctionner en changeant postgres HOST dans les paramètres de Django de
localhost
à127.0.0.1
.Bravo si ça aide.
la source