Назад | Перейти на главную страницу

Запустите PostgreSQL 9.3 вручную после того, как установщик тихо откажется установить службу Windows.

Мне нужно получить доступ к небольшой базе данных примерно четырехлетней давности. У меня есть исходный установщик и весь исходный каталог, включая data папка. К сожалению, установщик для 9.3 и 12.0 категорически отказывается создавать службу для Windows. После этого одного проекта я полностью отказался от PostgreSQL, хотя мне действительно нужен доступ к базе данных (в идеале с HeidiSQL).

Я пытался:

  1. Установка чистой копии 9.3 (да, старой, не для постоянного использования).
  2. Установка чистой копии 12.0.
  3. Установка копии 9.3 со старым установочным каталогом на место, которое сделал распознавать и использовать эти настройки, хотя сервис еще не создан.

Я иногда использую Менеджер по обслуживанию без сосания для управления службами и попытались создать службу вручную.

Я понятия не имею, как запустить PostgreSQL даже при полностью чистой установке. Я просмотрел как минимум дюжину потоков (в основном Stack), и ничего не происходит.

Мне просто нужно иметь возможность просматривать старую / небольшую базу данных PostgreSQL в HeidiSQL или, если есть умная программа, которая будет просматривать необработанные файлы базы данных и экспортировать все базы данных, не требуя запуска PostgreSQL? У меня нет подтверждения того, что он работал в любом контексте.

Как вручную создать сервис для PostgreSQL или как мне экспортировать все базы данных из PostgreSQL без запуска PostgreSQL в любом контексте?

Хммм ... Я использую Postgres с 95 года и запускаю Postgres в Windows с тех пор, о, ранние шалости, конечно, до версии 8.2, и сейчас я все еще использую 9.3 в Windows 7 в том самом поле, в котором я это набираю на.

Одна вещь, которую вы не указываете, - это то, на какой версии Windows вы пытаетесь запустить, хотя мы видим, что это 64-битный процессор.

Прошло немного времени с тех пор, как я выполнил эту установку, но я считаю, что установщик для Windows предоставляется не командой PostgreSQL, а EnterpriseDb - это то, что вы запускали?

Может у вас гниль? sha1sum в выпуске 9.3.1.1:

20bd1b72b5707c74a013e1bcb9a36502c8f0544e  postgresql-9.3.1-1-windows-x64.exe

Я успешно использовал инструменты Cygwin для добавления службы в Windows. Вот краткое описание того, что он может делать (это более старая версия):

$ cygrunsrv.exe --help
Usage: cygrunsrv [OPTION]...

Main options: Exactly one is required.

  -I, --install <svc_name>  Installes a new service named <svc_name>.
  -R, --remove <svc_name>   Removes a service named <svc_name>.
  -S, --start <svc_name>    Starts a service named <svc_name>.
  -E, --stop <svc_name>     Stops a service named <svc_name>.
  -Q, --query <svc_name>    Queries a service named <svc_name>.
  -L, --list [server]       Lists services that have been installed
                            with cygrunsrv.
  <svc_name> can be a local service or "server/svc_name" or "server\svc_name".

Required install options:
  -p, --path <app_path>     Application path which is run as a service.

Miscellaneous install options:
  -P, --crs-path <path>     Path to cygrunsrv. This is useful for testing or
                            when installing a service on a remote machine.
  -a, --args <args>         Optional string with command line options which
                            is given to the service application on startup.
  -c, --chdir <directory>   Optional directory which will be used as working
                            directory for the application.
  -e, --env <VAR=VALUE>     Optional environment strings which are added
                            to the environment when service is started.
                            You can add up to 255 environment strings using
                            the `--env' option.
                            Note: /bin is always added to $PATH to allow all
                            started applications to find cygwin DLLs.
  -d, --disp <display name> Optional string which contains the display name
                            of the service. Defaults to service name.
  -f, --desc <description>  Optional string which contains the service
                            description.
  -t, --type [auto|manual]  Optional start type of service. Defaults to `auto'.
  -u, --user <user name>    Optional user name to start service as.
                            Defaults to SYSTEM account.
  -w, --passwd <password>   Optional password for user. Only needed
                            if a user is given. If a user has an empty
                            password, enter `-w '. If a user is given but
                            no password, cygrunsrv will ask for a password
                            interactively.
  -s, --termsig <signal>    Optional signal to send to service application
                            when service is stopped.  <signal> can be a number
                            or a signal name such as HUP, INT, QUIT, etc.
                            Default is TERM.
  -z, --shutsig <signal>    Optional signal to send to service application
                            when shutdown has been initiated.  Default is the
                            same signal as defined as termination signal.
  -y, --dep <svc_name2>     Optional name of service that must be started
                            before this new service.  The --dep option may
                            be given up to 16 times, listing another dependent
                            service each time.
  -0, --stdin <file>        Optional input file used for stdin redirection.
                            Default is /dev/null.
  -1, --stdout <file>       Optional output file used for stdout redirection.
                            Default is /var/log/<svc_name>.log.
  -2, --stderr <file>       Optional output file used for stderr redirection.
                            Default is /var/log/<svc_name>.log.
  -x, --pidfile <file>      Optional path for .pid file written by application
                            after fork().
                            Default is that application must not fork().
  -n, --neverexits          Service should never exit by itself.
  -O, --preshutdown         Stop service application during system preshutdown.
  -o, --shutdown            Stop service application during system shutdown.
                            (Only one of --preshutdown and --shutdown is
                             accepted.  Preshutdown is preferred, but only
                             available since Windows Vista/Longhorn.  On earlier
                             OS versions it's silently converted to --shutdown).
  -i, --interactive         Allow service to interact with the desktop
                            (No effect since Windows Vista/Longhorn).
  -j, --nohide              Don't hide console window when service interacts
                            with desktop.

Informative output:
  -V, --verbose             When used with --query or --list, causes extra
  -h, --help                print this help, then exit.
  -v, --version             print cygrunsrv program version number, then exit.

Я использовал это для успешного добавления служб в Windows (до Windows 7 включительно, но не за ее пределами), а проект Cygwin активен и, вероятно, хорошо работает в самой младшей версии.

Кроме того, я запускал Postgres во многих системах, где Postgres официально НЕ был установлен; он имеет собственные файлы конфигурации и самодостаточен. Если вам комфортно пользоваться инструментами командной строки, вы, вероятно, можете довольно легко запустить Postgres «вручную» - просто следуйте инструкциям, как если бы он работал в системе Linux / Unix! (Если вы попробуете это сделать, я НАСТОЯТЕЛЬНО рекомендую использовать Cygwin в качестве интерфейса командной строки.) Тем не менее, можно с уверенностью сказать, что PGAdmin требует этих записей реестра Windows, поэтому ваши графические инструменты, скорее всего, не будут работать таким образом, но кто знает, могут! Это просто порт для подключения и прохождение некоторых разрешений / аутентификации.

Кроме того, все эти годы я писал себе несколько заметок по установке, чтобы помочь тем, кто следит за ним. Вот что я писал о Postgres для Windows, последний раз обновлявшийся в 2009 году, поэтому ссылки могут быть недействительными:

$ cat PostgresOnWindows/README.TXT
NOTE! Before you run the installation, you must extract the entire
ZIP file to a temporary directory. Just double-clicking on the
MSI files inside the ZIP will NOT work.

Before you begin, please read the installation instructions at
http://pginstaller.projects.postgresql.org
Also see the FAQ available at
http://www.postgresql.org/docs/faqs.FAQ_windows.html

В качестве альтернативы найдите кого-нибудь вроде меня, у которого он установлен и запущен для извлечения ваших данных, так как это не похоже на то, что вы заботитесь об использовании Postgres.