大多数教程都安装 postgresql 和 postgresql-server:
$ sudo yum install postgresql postgresql-server
Installed:
postgresql.x86_64 0:9.2.24-1.amzn2.0.1
postgresql-server.x86_64 0:9.2.24-1.amzn2.0.1
Dependency Installed:
postgresql-libs.x86_64 0:9.2.24-1.amzn2.0.1
程序安装在这里:
$ which psql
/usr/bin/psql
$ which postgres
/usr/bin/postgres
此时,大多数教程都会进入initdb
和pg_ctl <path> start
$ cd '/usr/lib'
$ service postgresql initdb
Hint: the preferred way to do this is now "postgresql-setup initdb"
$ sudo postgresql-setup initdb
[sudo] password for CORP\layne.sadler:
Initializing database ... OK
$ systemctl enable postgresql
Created symlink from /etc/systemd/system/multi-user.target.wants/postgresql.service to usr/lib/systemd/system/postgresql.service.
$ systemctl start postgresql
[18:47:32] /usr/bin ☯ systemctl status postgresql
● postgresql.service - PostgreSQL database server
Loaded: loaded (/usr/lib/systemd/system/postgresql.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2020-03-05 18:47:32 EST; 7s ago
Process: 25559 ExecStart=/usr/bin/pg_ctl start -D ${PGDATA} -s -o -p ${PGPORT} -w -t 300 (code=exited, status=0/SUCCESS)
Process: 25553 ExecStartPre=/usr/bin/postgresql-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)
Main PID: 25562 (postgres)
CGroup: /system.slice/postgresql.service
├─25562 /usr/bin/postgres -D /var/lib/pgsql/data -p 5432
├─25564 postgres: logger process
├─25566 postgres: checkpointer process
├─25567 postgres: writer process
├─25568 postgres: wal writer process
├─25569 postgres: autovacuum launcher process
└─25570 postgres: stats collector process
$ passwd postgres
笔记:/usr/bin/postgres -D /var/lib/pgsql/data -p 5432
卡住
$postgres
postgres does not know where to find the server configuration file.
You must specify the --config-file or -D invocation option or set the PGDATA environment variable.
$ psql
psql: FATAL: role "CORP\layne.sadler" does not exist
$ sudo pg_ctl -D postgresql-setup initdb
pg_ctl: cannot be run as root
Please log in (using, e.g., "su") as the (unprivileged) user that will
own the server process.
# can't seem to login as su despite other sudo commands working
笔记:
- 操作系统声称有,
rhel fedora centos
但没有rhel-release
库。 - 看起来好像
epel-release
被dnf
阻止安装。 - ^^^ postgres安装说明需要以上工具。
答案1
CentOS(社区 ENTerprise 操作系统)是 RHEL(红帽企业 Linux)的社区(重新)构建,更改了品牌和其他一些细节。它努力实现二进制完全兼容,直至 bug-for-bug。它无权访问 RHEL 软件包存储库,它使用自己的软件包存储库。 EPEL(Extra Packages for Enterprise Linux)是一个 Fedora 项目,为 RHEL/CentOS 提供 RHEL 不附带的软件包。
我不知道“dnf 被阻止安装”从何而来。请注意,在 RHEL/CentOS 中,dnf 相对较新(我相信从版本 7 开始有替代方案),也许只有(旧版)yum 可用?yum install dnf
如果你需要的话可以尝试一下。根据您的 CentOS 的具体版本,它可能根本不存在。
您引用的最后一个错误消息非常清楚:Postgres 无法找到/读取它的配置。查看小心设置是否正确完成。某个地方错误的文件名可能会破坏一切。