执行PostgreSQL命令报错求助:参数无效及配置文件未找到
问题原因分析及解决办法
咱们一步步拆解你遇到的两个错误:
第一个错误:postgres: invalid argument: "psql"
你这里混淆了PostgreSQL的两个核心程序:postgres是数据库服务器进程(守护进程),负责后台运行提供数据库服务;而psql才是用来打开交互式会话的客户端工具。当你运行postgres psql时,系统会把psql当作给服务器进程的启动参数,但postgres根本不认识这个参数,所以直接抛出无效参数的错误。
第二个错误:找不到服务器配置文件
当你移除psql只运行postgres时,相当于尝试启动PostgreSQL数据库服务,但启动服务必须明确告诉它数据库数据目录(PGDATA)的位置,或者指定配置文件路径。默认情况下postgres不知道你的数据存储在哪里,因此会提示你必须通过--config-file/-D参数指定路径,或者提前设置PGDATA环境变量。
正确的操作方式
你真正想要的是打开psql交互式会话,所以应该直接运行客户端工具psql,而不是服务器进程postgres。正确的命令是:
sudo -u zorgan psql
这个命令会以zorgan用户身份启动psql客户端,默认会尝试连接到与用户名同名的数据库(如果该数据库存在的话)。如果需要指定特定数据库,可以补充数据库名:
sudo -u zorgan psql your_target_database
内容的提问来源于stack exchange,提问作者Zorgan
相关产品推荐
相关产品推荐

