How to execute the sql file in PSQL
Stackoverflow question link:
https://stackoverflow.com/questions/64210281/using-psql-executing-sql-format-file-shows-permission-denied-on-windows-platform
I followed one PostgreSQL tutorial step by step. One session to use PSQL to
execute sql files to create a new database in PostgreSQL.
1. copy paste the sql file within "C:\Program Files\PostgreSQL\12"
directory.
2. execute the following code \i C:\\Program
Files\\PostgreSQL\\12\\demo-big-en-20170815.sql
Failed
The message shows C:: Permission denied
then tried \ir "C:\\Program
Files\\PostgreSQL\\12\\demo-big-en-20170815.sql"
Failed
The message shows unrecognized win32 error code: 123"C:/Program
Files/PostgreSQL/12/createdatabasesupertest.sql: Invalid argument
SQL file probably was wrong. SO I tried to create a simple sql file (create
a new database). Then I follow the above mentioned step to execute the
file on windows PSQL. But it failed the same way just like the above
mentioned.
So basically my PSQL can not run script files. What should i do?
On 10/5/20 7:55 AM, Mark wrote:
Stackoverflow question link:
https://stackoverflow.com/questions/64210281/using-psql-executing-sql-format-file-shows-permission-denied-on-windows-platformI followed one PostgreSQL tutorial step by step. One session to use PSQL
to execute sql files to create a new database in PostgreSQL.1. copy paste the sql file within "C:\Program Files\PostgreSQL\12"
directory.
2. execute the following code \i C:\\Program
Files\\PostgreSQL\\12\\demo-big-en-20170815.sqlFailed
The message shows C:: Permission denied
then tried \ir "C:\\Program
Files\\PostgreSQL\\12\\demo-big-en-20170815.sql"
Failed
The message shows unrecognized win32 error code: 123"C:/Program
Files/PostgreSQL/12/createdatabasesupertest.sql: Invalid argumentSQL file probably was wrong. SO I tried to create a simple sql file
(create a new database). Then I follow the above mentioned step to
execute the file on windows PSQL. But it failed the same way just like
the above mentioned.So basically my PSQL can not run script files. What should i do?
The issue is the user you are running psql as does not have permissions
to read the file. This is a OS permissions thing. Either run psql as a
user that can read the file or change the permissions on the file to
those that allow the psql user to read it.
--
Adrian Klaver
adrian.klaver@aklaver.com
Adrian Klaver <adrian.klaver@aklaver.com> writes:
On 10/5/20 7:55 AM, Mark wrote:
I followed one PostgreSQL tutorial step by step. One session to use PSQL
to execute sql files to create a new database in PostgreSQL.
1. copy paste the sql file within "C:\Program Files\PostgreSQL\12"
directory.
2. execute the following code \i C:\\Program
Files\\PostgreSQL\\12\\demo-big-en-20170815.sqlFailed
The message shows C:: Permission denied
The issue is the user you are running psql as does not have permissions
to read the file. This is a OS permissions thing. Either run psql as a
user that can read the file or change the permissions on the file to
those that allow the psql user to read it.
... or more likely, put the SQL file in a saner place. Dropping random
files into a program directory can only lead to trouble. You should
treat such directories as read-only unless you know exactly what you
are doing.
It seems likely to me that this failure stems from PG being installed
with permissions settings that prevent it from reading/modifying its own
executables, which is good solid security practice.
(If the tutorial actually told you to do that, the tutorial's author
is utterly clueless.)
regards, tom lane
Actually, a single quotation will work.
\ir 'C:\\Program Files\\PostgreSQL\\12\\demo-big-en-20170815.sql'
But I don't know why a single quotation will work.
It would be very helpful if you guys can explain to me.
On Mon, Oct 5, 2020 at 9:31 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:
Show quoted text
Adrian Klaver <adrian.klaver@aklaver.com> writes:
On 10/5/20 7:55 AM, Mark wrote:
I followed one PostgreSQL tutorial step by step. One session to use
PSQL
to execute sql files to create a new database in PostgreSQL.
1. copy paste the sql file within "C:\Program Files\PostgreSQL\12"
directory.
2. execute the following code \i C:\\Program
Files\\PostgreSQL\\12\\demo-big-en-20170815.sqlFailed
The message shows C:: Permission deniedThe issue is the user you are running psql as does not have permissions
to read the file. This is a OS permissions thing. Either run psql as a
user that can read the file or change the permissions on the file to
those that allow the psql user to read it.... or more likely, put the SQL file in a saner place. Dropping random
files into a program directory can only lead to trouble. You should
treat such directories as read-only unless you know exactly what you
are doing.It seems likely to me that this failure stems from PG being installed
with permissions settings that prevent it from reading/modifying its own
executables, which is good solid security practice.(If the tutorial actually told you to do that, the tutorial's author
is utterly clueless.)regards, tom lane
Hi Mark,
On 06. Oct, 2020, at 10:23, Mark <jxustnc@gmail.com> wrote:
Actually, a single quotation will work.
\ir 'C:\\Program Files\\PostgreSQL\\12\\demo-big-en-20170815.sql'
But I don't know why a single quotation will work.
It would be very helpful if you guys can explain to me.
because Microsoft had the glorious idea of putting a blank character into "Program Files". Quoting this will make the whole C:\...sql line one single word which is then passed to \i.
Cheers,
Paul