安装PostgreSQL扩展“age”时出错,数据目录存在权限问题

lyr7nygr  于 2023-03-12  发布在  PostgreSQL
关注(0)|答案(4)|浏览(327)

我正在尝试安装PostgreSQL扩展'age',但遇到了一些错误。当我尝试使用以下命令创建扩展时:

create extension 'age';
ERROR: syntax error at or near "'age'"
create extension "age";
ERROR: could not open extension control file "/Applications/Postgres.app/Contents/Versions/14/share/postgresql/extension/age.control": No such file or directory

我还注意到我面临着一些PostgreSQL数据目录的权限问题。当我尝试使用命令启动PostgreSQL服务器时:

pg_ctl start -l log
pg_CTL: could not access directory "/usr/local/bin/psql/bin/data": Not a directory
sudo chown devn /usr/local/bin/psql/bin -R
chown: /usr/local/bin/psql/bin: Not a directory
chown: -R: No such file or directory

有人能帮我解决这些问题吗?任何帮助都将不胜感激。谢谢。

bash-3.2$ export PATH=$PATH:/home/pg/dist/postgresql-12.0/bin
bash-3.2$ export LD_LIBRARY_PATH="/home/pg/dist/postgresql-12.0/lib/"
bash-3.2$ pg_ctl start -D /home/pg/data -l logfile
pg_ctl: directory "/home/pg/data" does not exist
bash-3.2$  initdb -D /home/pg/data
The files belonging to this database system will be owned by user "devn".
This user must also own the server process.

The database cluster will be initialized with locale "en_US.UTF-8".
The default database encoding has accordingly been set to "UTF8".
The default text search configuration will be set to "english".

Data page checksums are disabled.

creating directory /home/pg/data ... initdb: error: could not create directory "/home/pg": Operation not supported
bash-3.2$ mkdir /home/pg
mkdir: /home/pg: Operation not supported
bash-3.2$ sudo mkdir /home/pg
Password:
mkdir: /home/pg: Operation not supported
monwx1rj

monwx1rj1#

首先,您使用的是PostgreSQL版本14,它与年龄扩展不兼容。“年龄”只兼容PostgreSQL版本11或12。之后,当您使用版本12时,版本有特定的年龄版本。
另一个分析是,你试图通过brew安装PostgreSQL & age。这是一件非常困难的事情。最简单的安装方法是使用PostgreSQL的源代码,而不是brew安装。
您可以按照我的blog轻松安装。
首先,选择你想保存源代码的文件夹。然后在那里下载PostgreSQL 11/12源代码。如果你使用的是11版本,那么你需要使用***age***master分支但是如果你使用的是12版本的postgresql,那么你需要PG12版本年龄。然后下载年龄版本到那个可安装的文件夹。
之后,按照我的安装过程。

9bfwbjaz

9bfwbjaz2#

对于问题的第1部分,请尝试以下操作:

1-检查命令的语法。您使用了“age”或“age”(带引号),请尝试不带引号执行它,如下所示:

CREATE EXTENSION age;

2-如果这不起作用,请验证扩展是否正确安装。如果已安装,请验证路径/位置。

问题第二部分:

1-验证配置文件中给出的数据目录路径是否正确。
2-检查提供给目录的权限。

41zrol4v

41zrol4v3#

看起来有很多丢失的文件,所以我建议为Postgres和AGE做一个干净的安装。
运行.configuremake命令后,确保首先使用sudo mkdir.configure命令中指定的相同位置创建目录。创建后,使用sudo chown授予权限,然后使用make install进行安装。最后,使用export PATH=export PGDATA=设置路径和集群位置。然后,您应该能够使用initdb初始化集群并启动数据库服务器。
您可以在here中找到安装PostgreSQL和Apache AGE的详细分步说明。

wixjitnu

wixjitnu4#

查看您的PostgreSQL目录,似乎您没有从Postgres的源代码安装它。我建议您从特定目录的源代码安装重新安装PostgreSQL,然后运行服务器,初始化数据库并尝试加载AGE扩展。
本视频提供了所有必要的步骤:Video

相关问题