我开始使用psql时遇到麻烦。我可以使用下面的脚本登录
myusername@ubuntu:~/Desktop/dbscripts$ sudo su - postgres
postgres@ubuntu:~$
但是,一旦到了这里,我就无法弄清楚如何找到我的.sql文件。 我在这里尝试了Bolo提供的选项: How to import existing *.sql files in PostgreSQL 8.4? 但他们只给出了
myusername@ubuntu:~/Desktop/dbscripts$ psql -U root -d first -f myscript.sql
psql: FATAL: Peer authentication failed for user "root"
和
myusername@ubuntu:~/Desktop/dbscripts$ psql -f myscript.sqlp
sql: FATAL: role "myusername" does not exist
和
myusername@ubuntu:~/Desktop/dbscripts$ sudo su - postgres
postgres@ubuntu:~$ \i myscript.sql
The program 'i' is currently not installed. To run 'i' please ask your administrator to install the package 'iprint'
答案 0 :(得分:1)
可以从您尝试的上述任何选项中处理。你在哪条路径myscript.sql?完成su - postgres
后,请提供完整路径。所以它将是psql -d first -f <pathtosqlfile>/myscript.sql
。除非您在数据库中拥有用户root,否则psql -U root
将无效。试试psql -U postgres
。您可以在psql提示符下执行\i sqlscript
,而不是在linux命令提示符下执行此操作。您可以通过使用-U postgres(或任何其他数据库用户)或通过设置PGUSER环境变量来避免您获得“角色”myusername“不存在”的错误。