我有问题开始使用psql。我可以使用下面的脚本登录
myusername@ubuntu:~/Desktop/dbscripts$ sudo su - postgres
postgres@ubuntu:~$
但是,一旦在这里,我不知道如何找到我的。sql文件。我尝试了Bolo提供的选项:如何导入现有的*。PostgreSQL 8.4中的sql文件?但是它们只给出
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'
这可以从您尝试的任何上述选项中处理。在哪个路径中有myscript.sql?完成su - postgres
后,给出完整路径。所以是psql -d first -f <pathtosqlfile>/myscript.sql
。psql -U root
将不工作,除非你有一个用户在数据库中的根。试试psql -U postgres
。您可以在psql提示符下执行i sqlscript
,而不是像以前那样在linux命令提示符下执行。错误你得到"角色"myusername"不存在"可以避免使用-U postgres(或任何其他数据库用户)或通过设置PGUSER环境变量。