Re: Running Windows binaries from non-English folder

From: Thomas Kellerer <spam_eater(at)gmx(dot)net>
To: pgsql-admin(at)postgresql(dot)org
Subject: Re: Running Windows binaries from non-English folder
Date: 2017-11-08 06:56:29
Message-ID: otu9qm$5ph$1@blaine.gmane.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin

Yuri Martsinovsky schrieb am 07.11.2017 um 20:30:
> I put PostgreSQL binary files in Windows in a folder with Russian name, for example:
> C:\Постгрес
>
> When I run pg_ctl.exe from the Command Prompt from this current directory I get the following error:
> could not find a "pg_ctl.exe" to execute
>
> pg_ctl.exe file is actually there and it runs, but just prints the above error to the console.
>
> If I run 
> "C:\Постгрес\pg_ctl.exe"
> I get this error:
> invalid binary: "C:\????????\pg_ctl.exe"
>
> The same happens when running initdb.exe
> Looks like the utility just cannot access its own file because of the russian characters.
>
> The OS is Windows 10
> I tried running "chcp 65001" in the console window to set UTF-8 encoding for the console.
>
> Similar errors happen if I put the binaries in English folder, but try to run initdb for a non-english data folder
>
> Does PostgreSQL for Windows support directories in UTF-8 or other encoding? 

I have encountered that as well even with plain ASCII names, but with spaces in it.

Try

"C:\Постгрес\"pg_ctl.exe

(That is: only quote the path, not the actual executable)

I think this happens if you start pg_ctl using an administrator account.
pg_ctl drops the privileges then and restarts itself (or something like that) but it fails to extract the filename correctly if everything is quoted.

Thomas

In response to

Browse pgsql-admin by date

  From Date Subject
Next Message Douglas Reed 2017-11-08 10:09:49 Problems rebuilding slave using pg_basebackup
Previous Message rammohan ganapavarapu 2017-11-08 02:52:06 How to measure replication lag in logical replication setup.