在麒麟linux上源码安装Postgresql12.5

本文详细介绍了在麒麟Linux V10环境下,如何从官网下载并源码编译安装PostgreSQL 12.5,包括安装步骤、错误处理和配置环境变量等关键步骤,最终成功启动服务并完成测试。

本文主要实践在麒麟Linux V10版本上通过源码编译安装PostgreSQL12.5,因为是源码编译,所以对于其他版本也具有参考性。

麒麟版本

V10

$ uname -a
Linux kylin-v10-02 4.19.90-24.4.v2101.ky10.aarch64 #1 SMP Mon May 24 14:45:37 CST 2021 aarch64 aarch64 aarch64 GNU/Linux

下载PostgreSQL12.5源码

下载地址为官网:https://www.postgresql.org/ftp/source/v12.5/

上传解压到服务器。

编译源码过程

官方文档.

运行

./configure

得到如下报错:

error: readline library not found

需要安装readline

yum install readline-devel -y

然后再运行 ./configure

没有报错后,再运行

make

编译完成后得到成功提示

1

然后开始安装, 运行

make install

安装成功后可以看到

2
默认安装路径为 /usr/local/pgsql,我们需要将权限改为postgres

[root@kylin-v10-02 local]# useradd postgres
[root@kylin-v10-02 local]# chown -R postgres:postgres /usr/local/pgsql/

3

配置环境变量

安装完成后,还要做一些配置操作.

vim /etc/profile加入下面的环境变量配置

export PATH=/usr/local/pgsql/bin:$PATH

LD_LIBRARY_PATH=/usr/local/pgsql/lib
export LD_LIBRARY_PATH

然后刷新配置:

source /etc/profile

启动服务

在启动PG之前,需要准备一个数据目录,注意修改权限:

mkdir -p /export/pgdata
chown -R postgres:postgres /export/pgdata

初始化数据库,注意,要切换到postgres用户

# sudo su - postgres
initdb -D /export/pgdata/

完整输出如下:

The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.

The database cluster will be initialized with locale "zh_CN.UTF-8".
The default database encoding has accordingly been set to "UTF8".
initdb: could not find suitable text search configuration for locale "zh_CN.UTF-8"
The default text search configuration will be set to "simple".

Data page checksums are disabled.

fixing permissions on existing directory /export/pgdata ... ok
creating subdirectories ... ok
selecting dynamic shared memory implementation ... posix
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting default time zone ... Asia/Shanghai
creating configuration files ... ok
running bootstrap script ... ok
performing post-bootstrap initialization ... ok
syncing data to disk ... ok

initdb: warning: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the option -A, or
--auth-local and --auth-host, the next time you run initdb.

Success. You can now start the database server using:

    pg_ctl -D /export/pgdata/ -l logfile start

启动PG

那我们就启动服务:

[postgres@kylin-v10-02 ~]$ pg_ctl -D /export/pgdata/ -l logfile start
waiting for server to start.... done
server started

测试

[postgres@kylin-v10-02 ~]$ psql
psql (12.5)
Type "help" for help.

postgres=# \l
List of databases
Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges   
-----------+----------+----------+-------------+-------------+-----------------------
postgres  | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 |
template0 | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/postgres          +
|          |          |             |             | postgres=CTc/postgres
template1 | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/postgres          +
|          |          |             |             | postgres=CTc/postgres
(3 rows)

测试ok,不过要提供给其他机器用,还需要一些监听和安全配置。

修改密码

postgres=# alter user postgres password 'postgres';
ALTER ROLE

修改监听地址

默认情况是在localhost上监听
vim /export/pgdata/postgresql.conf ,修改监听地址

listen_addresses = '*'

还要允许密码访问,vim /export/pgdata/pg_hba.conf,在最后加入:

host  all  all 0.0.0.0/0 md5

然后重启服务

pg_ctl -D /export/pgdata/ -l logfile restart

下一篇,我们还会接着安装 PostGIS: 在麒麟Linux安装PostGIS .

### 在银河麒麟 V10 桌面版 ARM64 上安装 PostgreSQL 12.5 的指南 #### 准备工作 在开始安装之前,需要确保系统已经更新至最新版本,并且安装了必要的开发工具和依赖库。可以通过以下命令完成系统的更新和工具的安装[^1]: ```bash sudo apt update && sudo apt upgrade -y sudo apt install build-essential libreadline-dev zlib1g-dev flex bison -y ``` #### 下载 PostgreSQL 源码 从官方网站下载 PostgreSQL 12.5源码包,并解压到指定目录[^2]: ```bash wget https://ftp.postgresql.org/pub/source/v12.5/postgresql-12.5.tar.gz tar -xvzf postgresql-12.5.tar.gz cd postgresql-12.5 ``` #### 配置编译环境 在 ARM64 架构上编译 PostgreSQL 时,需要指定目标架构并确保所有依赖项已正确安装。运行以下命令配置编译环境: ```bash ./configure --prefix=/usr/local/pgsql --with-libraries=/usr/lib/aarch64-linux-gnu --with-includes=/usr/include/aarch64-linux-gnu ``` 如果遇到缺少依赖的问题,请根据错误提示安装相应的库文件。 #### 编译与安装 执行以下命令进行编译和安装: ```bash make sudo make install ``` 这将把 PostgreSQL 安装到 `/usr/local/pgsql` 目录下。 #### 初始化数据库集群 创建一个用于存储数据的目录,并初始化数据库集群: ```bash sudo mkdir -p /data/pgdata sudo chown -R $(whoami):$(whoami) /data/pgdata /usr/local/pgsql/bin/initdb -D /data/pgdata ``` #### 启动 PostgreSQL 服务 使用以下命令启动 PostgreSQL 服务,并设置为开机自启: ```bash /usr/local/pgsql/bin/pg_ctl -D /data/pgdata -l logfile start echo "/usr/local/pgsql/bin/pg_ctl -D /data/pgdata start" >> ~/.bashrc ``` #### 验证安装 通过以下命令验证 PostgreSQL 是否成功安装并运行: ```bash /usr/local/pgsql/bin/psql -U postgres -c "SELECT version();" ``` 如果返回 PostgreSQL 的版本信息,则说明安装成功[^3]。 #### 使用 Docker 部署(可选) 如果希望使用 Docker 部署 PostgreSQL,可以拉取官方镜像并启动容器: ```bash docker pull postgres:12.5 docker run -p 5432:5432 --name pgsql125 -e POSTGRES_PASSWORD=yourpassword -d postgres:12.5 ``` 注意:此方法适用于快速部署测试环境,生产环境中建议手动编译以获得更好的性能优化。 ---
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值