pg_dump не может найти базу данных

Легкие очки для всех, кроме меня. Я пытаюсь использовать pg_dump. У меня Mac OSx, postgres.app, 9.2, и я хочу сделать резервную копию своей базы данных. Я пробовал другие решения для той же проблемы, но безуспешно. Насколько я могу судить, postgres.app работает на 5432. Я выполнил приведенную ниже команду из случайного каталога и из моего каталога данных, но не повезло.

Команда попробовала:

 $ pg_dump pdbt > pdbt.sql

Ошибка:

pg_dump: [archiver (db)] connection to database "pdbt" failed: could not connect to server: No such file or directory
Is the server running locally and accepting connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?

person user2104778    schedule 28.09.2013    source источник
comment
Может быть проблема с OSX (неправильное расположение встроенного сокета unix-domain // кладж версии). psql pdbt -l работает? Пожалуйста, попробуйте с -h dirname например pg_dump -h /tmp/ pdbt > pdbt.sql   -  person wildplasser    schedule 28.09.2013
comment
Запуск psql pdbt -l дает следующую ошибку: psql: не удалось подключиться к серверу: нет такого файла или каталога. Сервер работает локально и принимает подключения через сокет домена Unix /var/pgsql_socket/.s.PGSQL.5432?   -  person user2104778    schedule 28.09.2013
comment
Однако я могу использовать psql, щелкнув значок postgres.app в верхней части рабочего стола и выбрав open psql.   -  person user2104778    schedule 28.09.2013
comment
Похоже, у вас установлены некоторые старые двоичные файлы (в одной версии OSX были разные встроенные пути для сокета домена unix). psql -h localhost pdbt -l работает? Также: попробуйте проверить разные версии двоичных файлов (сначала неправильный в PATH). Связано: postgresql/8482546#8482546" title="не удается подключиться к локальному postgresql"> stackoverflow.com/questions/8465508/ (psql вместо pg_dump, но, вероятно, та же проблема с OSX)   -  person wildplasser    schedule 28.09.2013
comment
psql -h localhost pdbt -l работает. Куда мне идти отсюда?   -  person user2104778    schedule 28.09.2013
comment
Тогда pg_dump -h localhost pdbt, вероятно, тоже сработает.   -  person wildplasser    schedule 28.09.2013
comment
Хорошо, теперь я получаю pg_dump: версия сервера: 9.2.4; Версия pg_dump: 9.1.9 pg_dump: отмена из-за несоответствия версии сервера   -  person user2104778    schedule 28.09.2013
comment
Предположительно старая версия находится первой на пути. попробуйте find / -name pg_dump -ls (думаю, вы найдете больше одного)   -  person wildplasser    schedule 28.09.2013
comment
что я ищу в результатах поиска (много данных)? Кроме того, поместите свои комментарии в ответ, и я приму его   -  person user2104778    schedule 28.09.2013


Ответы (1)


  • Может быть проблема с OSX (неправильное расположение встроенного сокета unix-domain // кладж версии). psql pdbt -l работает?
  • также попробуйте с -h имя_каталога, например, pg_dump -h /tmp/ pdbt > pdbt.sql
  • psql -h localhost pdbt -l работает?
  • затем: pg_dump -h localhost pdbt, вероятно, тоже сработает.
  • Чтобы узнать о сосуществовании нескольких версий pg_dump, вы можете попробовать: find / -name pg_dump -ls , после этого вы можете попробовать различные версии, используя полное имя пути (например, /usr/bin/pg_dump -h localhost или /usr/local/bin/pg_dump -h localhost или что-то еще найденное)
  • Предположительно старая (неправильная) версия находится первой на пути.

В большинстве случаев некоторый процесс установки OSX оставил некоторые старые двоичные файлы установленными (в одном выпуске OSX были разные встроенные пути для сокета домена unix). Также: попробуйте проверить разные версии двоичных файлов (сначала неправильная версия в PATH)

Связано: (psql вместо pg_dump, но, вероятно, та же проблема с OSX)

person wildplasser    schedule 28.09.2013
comment
Предполагая, что старая версия находится первой на пути, как мне это изменить? - person user2104778; 29.09.2013
comment
Убери это. Или если вы хотите быть в безопасности : переименуйте его (например: cd baddirectory; mv -i pg_dump pg_dump.BAD ) - person wildplasser; 29.09.2013
comment
Кажется, это сработало. Я переименовал старый pg_dump в /usr/local/bin, скопировал и вставил обновленный pg_dump из файла postgres.app в /usr/local/bin. Затем я запустил pg_dump -h localhost pdbt › pdbt.sql. Он работает прямо сейчас, но, похоже, работает. Спасибо, что поддержал мою некомпетентную руку. - person user2104778; 29.09.2013