Postgres терпит неудачу в том, что "невозможно открыть файл сопоставления отношений" global/pg_filenode.map "'
У меня возникла проблема с моей установкой postgres в моей среде разработки, и мне нужна помощь в ее диагностике. Мне еще не удалась найти решение.
- У меня есть postgres 9.0.4, установленный с homebrew
- Я запускаю OS X 10.6.8 (Snow Leopard)
Я могу запустить и остановить сервер
$ pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
server starting
Если я попытаюсь остановить хотя
$ pg_ctl -D /usr/local/var/postgres stop -s -m fast
pg_ctl: PID file "/usr/local/var/postgres/postmaster.pid" does not exist
Is server running?
Хорошо это отсутствует
$ ls -l /usr/local/var/postgres/ | grep postmaster
$
Но он определенно работает
$ ps aux | grep postgres
pschmitz 303 0.9 0.0 2445860 1428 ?? Ss 3:12PM 0:02.46 postgres: autovacuum launcher process
pschmitz 304 0.9 0.0 2441760 428 ?? Ss 3:12PM 0:02.57 postgres: stats collector process
pschmitz 302 0.0 0.0 2445728 508 ?? Ss 3:12PM 0:00.56 postgres: wal writer process
pschmitz 301 0.0 0.0 2445728 560 ?? Ss 3:12PM 0:00.78 postgres: writer process
pschmitz 227 0.0 0.1 2445728 2432 ?? S 3:11PM 0:00.42 /usr/local/Cellar/postgresql/9.0.3/bin/postgres -D /usr/local/var/postgres -r /usr/local/var/postgres/server.log
И если я пытаюсь получить или использовать его, я получаю это.
$psql
psql: FATAL: could not open relation mapping file "global/pg_filenode.map": No such file or directory
Но global/pg_filenode.map определенно существует в
$ls -l /usr/local/var/postgres/
...
-rw------- 1 pschmitz staff 8192 Sep 16 15:48 pg_control
-rw------- 1 pschmitz staff 512 Sep 16 15:48 pg_filenode.map
-rw------- 1 pschmitz staff 12092 Sep 16 15:48 pg_internal.init
Я попытался удалить и повторно установить без каких-либо изменений. Любые идеи о том, как я могу это решить?
Это в значительной степени помешало мне сделать что-нибудь сегодня.
EDIT Решено
Я не уверен, что источником исходной проблемы было 9.0.3, потому что я получал эту проблему
psql: FATAL: could not open relation mapping file "global/pg_filenode.map": No such file or directory
Однако, как указано выше, оказывается, что текущий процесс был для моей предыдущей установки postgres 9.0.3
Я считаю, что у меня была старая версия org.postgresql.postgres.plist в ~/Library/LaunchAgents/
Мне пришлось:
- Удалить и повторно добавить агент запуска
- Убейте процессы для 9.0.3
- Инициализировать db
initdb /usr/local/var/postgres
- Перезагрузите компьютер.
и теперь я работаю и работаю.
Ответы
Ответ 1
Я не уверен, что источником исходной проблемы было 9.0.3, потому что я получал эту проблему:
psql: FATAL: could not open relation mapping file "global/pg_filenode.map": No such file or directory
Однако, как указано выше, оказывается, что текущий процесс был для моей предыдущей установки postgres 9.0.3
Я считаю, что у меня была старая версия org.postgresql.postgres.plist в ~/Library/LaunchAgents/
Мне пришлось:
- Удалить и повторно добавить агент запуска
- Убейте процессы для 9.0.3
- Инициализировать db
initdb /usr/local/var/postgres
- Перезагрузите компьютер.
и теперь я работаю и работаю.
Ответ 2
Это может быть проблема с разрешением. Проверьте владельца и группу файлов конфигурации в /var/lib/pgsql/ 9.3/data/
chown -R postgres:postgres /var/lib/pgsql/9.3/data/
решил проблему для меня
Ответ 3
Я просто столкнулся с этой проблемой. Решил его, установив владельца каталога данных postgres для непривилегированного пользователя postgres.
Ответ 4
ps aux | grep postgres
показал, что у меня был другой экземпляр postgres, запущенный в каталоге данных temp из предыдущего тестового прогона. Убив этот процесс, проблема была устранена.
Ответ 5
У меня было старое значение PGDATA, запутывающее вещи.
Ответ 6
Мое пошаговое решение в Fedora:
-
/bin/systemctl stop postgresql.service
(Остановить службу)
-
rm -rf /var/lib/pgsql/data
(Удалите "данные" ).
-
postgresql-setup initdb
(воссоздайте каталог данных)
-
/bin/systemctl start postgresql.service
(Запустите службу)
Также полезно проверить разрешения каталога "data":
chown -R postgres:postgres <path_to_data_dir>
(Kudos to @LuizFernandodaSilva и @user4640867)
Ответ 7
Это (https://gist.github.com/olivierlacan/e1bf5c34bc9f82e06bc0) решило мою проблему! Сначала мне пришлось:
- Удалить Postgres.app из моих приложений
- Удалить каталог /usr/local/var/postgres
-
initdb /usr/local/var/postgres/
Затем мне удалось запустить/остановить Postgres с помощью этих двух команд:
Начало:
pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
Остановка:
pg_ctl -D /usr/local/var/postgres stop -s -m fast
Ответ 8
Мое решение этой проблемы:
Я запускаю postgresql-9.3
Мой файл plist находится в следующем каталоге:/Library/LaunchDaemons/com.edb.launchd.postgresql-9.3.plist
Шаг 1 остановит postgres
1. $sudo launchctl stop com.edb.launchd.postgresql-9.3
Запустите postgres, используя следующую команду (можно найти это местоположение, используя $brew info postgres)
2. $postgres -D/usr/local/var/postgres
Ответ 9
Я согласен со всеми вышеперечисленными решениями. Я запускал Postgres на сервере, и проблема заключалась в том, что я использовал номер PORT, который использовался какой-то другой версией Postgres OLDER.
Мне нужно было только изменить порт.
Ответ 10
У меня была такая же ошибка psql: FATAL: could not open relation mapping file "global/pg_filenode.map": No such file or directory
.
Спасибо за примечание № 2 выше: "Убейте процессы для 9.0.3"
Я ранее настроил и скомпилировал PostgreSQL. Затем я решил переконфигурировать, gmake, gmake install с разными путями файлов. Недавно скомпилированная программа не обнаружила "pg_filenode.map" в ожидаемом пути к файлу. Убив запущенный процесс postgres, освободив pgsql/data, а initdb снова разрешил создание новой базы данных.
Ответ 11
Я случайно rm -rf *
всех файлов под пользователем postgres
и сталкиваюсь с этой проблемой.
Моя ситуация:
- psql (PostgreSQL) 9.4.14
- 16.04.1-Ubuntu
Мои шаги по восстановлению:
- sudo service postgresql stop
- reboot
- sudo -i -u postgres
- psql
- /usr/lib/postgresql/9.4/bin/initdb /var/run/postgresql
- /usr/lib/postgresql/9.4/bin/postgres -D /var/run/postgresql
Ответ 12
mdillon/postgis:9.6
эту проблему, используя mdillon/postgis:9.6
Docker image. Простой sudo docker restart <container id>
решил проблему.