public inbox for [email protected]help / color / mirror / Atom feed
Re: Postgres service not starting on windows after install if not installed into standard locations 3+ messages / 2 participants [nested] [flat]
* Re: Postgres service not starting on windows after install if not installed into standard locations @ 2024-11-20 17:15 Adrian Klaver <[email protected]> 2024-11-21 14:10 ` Re: Postgres service not starting on windows after install if not installed into standard locations Thomas Schweikle <[email protected]> 0 siblings, 1 reply; 3+ messages in thread From: Adrian Klaver @ 2024-11-20 17:15 UTC (permalink / raw) To: Thomas Schweikle <[email protected]>; [email protected] <[email protected]> On 11/20/24 05:26, Thomas Schweikle wrote: > Am Mo., 18.Nov..2024 um 19:43:36 schrieb Laurenz Albe: >> On Mon, 2024-11-18 at 17:22 +0000, Thomas Schweikle wrote: >>> Had installed PostgreSQL 16.5 on Windows 10: >> How exactly is the Windows service defined? >> Perhaps you need to use an absolute path for the executable. > > Servicename: postgresql-x64-16 > Name: postgresql-x64-16-PostgreSQL Server 16 > Comment: Provides relational database storage > Path: "C:\PRGS\pgSQL\16\bin\pg_ctl.exe" > runservice -N "postgresql-x64-16" > -D "C:\DB\pgSQL\16\data" -w > Type: Automatic > Account: Networkservice > Password: set > Dependencies:RPC, DCOM-Service, RPC-Endpoint Did you change settings during the install? Here on my Windows machine I get: C:\Program Files\PostgreSQL\bin > > Errors found within system logs: > pg_ctl: could not find program 'postgres.exe' > > Seems, since "C:\PRGS\pgSQL\16\bin" is in system path, it does not > search there at all: > > # dir "C:\PRGS\pgSQL\16\bin" > [...] > Mi, 13.Nov.2024 13:24 123.392 pg_ctl.exe > [...] > Mi, 13.Nov.2024 13:24 8.659.968 postgres.exe > > Any way to tell a service in Windows to use a path? > Any registry key to assign a path to? > > # sc qc "postgresql-x64-16" > [SC] QueryServiceConfig ERFOLG > > SERVICE_NAME: postgresql-x64-16 > TYPE : 10 WIN32_OWN_PROCESS > START_TYPE : 2 AUTO_START > ERROR_CONTROL : 1 NORMAL > BINARY_PATH_NAME : "C:\PRGS\pgSQL\16\bin\pg_ctl.exe" > runservice -N "postgresql-x64-16" -D "C:\DB\pgSQL\16\data" -w > LOAD_ORDER_GROUP : > TAG : 0 > DISPLAY_NAME : postgresql-x64-16 - PostgreSQL Server 16 > DEPENDENCIES : RPCSS > SERVICE_START_NAME : NT AUTHORITY\NetworkService > > -- Adrian Klaver [email protected] ^ permalink raw reply [nested|flat] 3+ messages in thread
* Re: Postgres service not starting on windows after install if not installed into standard locations 2024-11-20 17:15 Re: Postgres service not starting on windows after install if not installed into standard locations Adrian Klaver <[email protected]> @ 2024-11-21 14:10 ` Thomas Schweikle <[email protected]> 2024-11-21 16:45 ` Re: Postgres service not starting on windows after install if not installed into standard locations Adrian Klaver <[email protected]> 0 siblings, 1 reply; 3+ messages in thread From: Thomas Schweikle @ 2024-11-21 14:10 UTC (permalink / raw) To: [email protected] <[email protected]> Am Mi., 20.Nov..2024 um 18:15:42 schrieb Adrian Klaver: > On 11/20/24 05:26, Thomas Schweikle wrote: >> Am Mo., 18.Nov..2024 um 19:43:36 schrieb Laurenz Albe: >>> On Mon, 2024-11-18 at 17:22 +0000, Thomas Schweikle wrote: >>>> Had installed PostgreSQL 16.5 on Windows 10: > >>> How exactly is the Windows service defined? >>> Perhaps you need to use an absolute path for the executable. >> >> Servicename: postgresql-x64-16 >> Name: postgresql-x64-16-PostgreSQL Server 16 >> Comment: Provides relational database storage >> Path: "C:\PRGS\pgSQL\16\bin\pg_ctl.exe" >> runservice -N "postgresql-x64-16" >> -D "C:\DB\pgSQL\16\data" -w >> Type: Automatic >> Account: Networkservice >> Password: set >> Dependencies:RPC, DCOM-Service, RPC-Endpoint > > > Did you change settings during the install? I called the installer with: .\postgresql-16.5-1-windows-x64.exe Then changed install path to: "C:\PRGS\pgSQL" And database path to: "C:\DB\pgSQL" After a while postgres got installed into "C:\PRGS\pgSQL\16" and the database path was created: "C:\DB\pgSQL\16\data", but the database was not created. Calling pg_initdb did the job and created the database within the given folder. Calling "pg_ctl start" gave a message, that "pg_ctl.exe" could not find "postgres.exe" -- I prepended "C:\PRGS\pgSQL\16\bin" to %PATH%. Next thing was that pg_ctl could not find the just, with pg_initdb, created database. So I've set up PGDATA to point to "C:\DB\pgSQL\16\data". Both within the global system environment of windows. Tried again to start postgres via "pg_ctl start". This time postgres got up and running instantly. Then stopped postgres again: "pg_ctl.exe stop". And tried it using "net start postgresql-x64-16". This failed. "pg_ctl.exe" called could not find "postgres.exe". Looking at the logs "pg_ctl.exe" stated it could not find "postgres.exe" again. Since %PGDATA% and %PATH% where set within system environment these are to be global and shall be active for services too. Looking closer on "pg_ctl.exe" I found it using a build in path of "C:\Program files\PostgreSQL\16\bin\postgres.exe", regardless of any environment variables set if started without any of stdout, stdin, stderr, what is the case if it is started as a service. > Here on my Windows machine I get: > > C:\Program Files\PostgreSQL\bin >> Errors found within system logs: >> pg_ctl: could not find program 'postgres.exe' >> >> Seems, since "C:\PRGS\pgSQL\16\bin" is in system path, it does not >> search there at all: >> >> # dir "C:\PRGS\pgSQL\16\bin" >> [...] >> Mi, 13.Nov.2024 13:24 123.392 pg_ctl.exe >> [...] >> Mi, 13.Nov.2024 13:24 8.659.968 postgres.exe >> >> Any way to tell a service in Windows to use a path? >> Any registry key to assign a path to? >> >> # sc qc "postgresql-x64-16" >> [SC] QueryServiceConfig ERFOLG >> >> SERVICE_NAME: postgresql-x64-16 >> TYPE : 10 WIN32_OWN_PROCESS >> START_TYPE : 2 AUTO_START >> ERROR_CONTROL : 1 NORMAL >> BINARY_PATH_NAME : "C:\PRGS\pgSQL\16\bin\pg_ctl.exe" >> runservice -N "postgresql-x64-16" -D "C:\DB\pgSQL\16\data" -w >> LOAD_ORDER_GROUP : >> TAG : 0 >> DISPLAY_NAME : postgresql-x64-16 - PostgreSQL Server 16 >> DEPENDENCIES : RPCSS >> SERVICE_START_NAME : NT AUTHORITY\NetworkService >> >> > -- Thomas ^ permalink raw reply [nested|flat] 3+ messages in thread
* Re: Postgres service not starting on windows after install if not installed into standard locations 2024-11-20 17:15 Re: Postgres service not starting on windows after install if not installed into standard locations Adrian Klaver <[email protected]> 2024-11-21 14:10 ` Re: Postgres service not starting on windows after install if not installed into standard locations Thomas Schweikle <[email protected]> @ 2024-11-21 16:45 ` Adrian Klaver <[email protected]> 0 siblings, 0 replies; 3+ messages in thread From: Adrian Klaver @ 2024-11-21 16:45 UTC (permalink / raw) To: Thomas Schweikle <[email protected]>; [email protected] <[email protected]> On 11/21/24 06:10, Thomas Schweikle wrote: > Am Mi., 20.Nov..2024 um 18:15:42 schrieb Adrian Klaver: >> On 11/20/24 05:26, Thomas Schweikle wrote: >>> Am Mo., 18.Nov..2024 um 19:43:36 schrieb Laurenz Albe: >>>> On Mon, 2024-11-18 at 17:22 +0000, Thomas Schweikle wrote: >>>>> Had installed PostgreSQL 16.5 on Windows 10: >> Did you change settings during the install? > > I called the installer with: > > .\postgresql-16.5-1-windows-x64.exe > > Then changed install path to: "C:\PRGS\pgSQL" > And database path to: "C:\DB\pgSQL" > > After a while postgres got installed into "C:\PRGS\pgSQL\16" and the > database path was created: "C:\DB\pgSQL\16\data", but the database was > not created. Calling pg_initdb did the job and created the database > within the given folder. > > Calling "pg_ctl start" gave a message, that "pg_ctl.exe" could not find > "postgres.exe" -- I prepended "C:\PRGS\pgSQL\16\bin" to %PATH%. Next > thing was that pg_ctl could not find the just, with pg_initdb, created > database. So I've set up PGDATA to point to "C:\DB\pgSQL\16\data". Both > within the global system environment of windows. > > Tried again to start postgres via "pg_ctl start". This time postgres got > up and running instantly. > > Then stopped postgres again: "pg_ctl.exe stop". And tried it using "net > start postgresql-x64-16". This failed. "pg_ctl.exe" called could not > find "postgres.exe". > > Looking at the logs "pg_ctl.exe" stated it could not find "postgres.exe" > again. Since %PGDATA% and %PATH% where set within system environment > these are to be global and shall be active for services too. > > Looking closer on "pg_ctl.exe" I found it using a build in path of > "C:\Program files\PostgreSQL\16\bin\postgres.exe", regardless of any > environment variables set if started without any of stdout, stdin, > stderr, what is the case if it is started as a service. > Looks like your choices are: 1) Keep the default paths during the install. 2) Raise an issue here: https://github.com/EnterpriseDB/edb-installers/issues -- Adrian Klaver [email protected] ^ permalink raw reply [nested|flat] 3+ messages in thread
end of thread, other threads:[~2024-11-21 16:45 UTC | newest] Thread overview: 3+ messages (download: mbox mbox.gz follow: Atom feed) -- links below jump to the message on this page -- 2024-11-20 17:15 Re: Postgres service not starting on windows after install if not installed into standard locations Adrian Klaver <[email protected]> 2024-11-21 14:10 ` Thomas Schweikle <[email protected]> 2024-11-21 16:45 ` Adrian Klaver <[email protected]>
This inbox is served by agora; see mirroring instructions for how to clone and mirror all data and code used for this inbox