PostgreSQL 16 编译安装
PostgreSQL About 3,125 words说明
以CentOS 8
为例。
安装依赖
libxslt
yum install libxslt-devel
readline
yum install readline-devel
libicu
,PostgreSQL 16
中默认会开启icu
对不同语言的字符串进行排序。
yum install libicu-devel
不安装icu
会得到以下错误
checking whether to build with ICU support... yes
checking for icu-uc icu-i18n... no
configure: error: ICU library not found
If you have ICU already installed, see config.log for details on the
failure. It is possible the compiler isn't looking in the proper directory.
Use --without-icu to disable ICU support.
创建用户
PostgreSQL
不能以root
用户启动。
添加用户postgres
。
添加用户叫postgres
,是为了使用psql
时默认会指定数据库postgres
和默认角色postgres
,这样psql
就可以不用加-d
和-U
参数了。
useradd postgres
用户组添加postgres
groupadd postgres
可能会得到以下告警,忽略即可。
groupadd: group 'postgres' already exists
参看用户
cat /etc/passwd
删除用户
如果想要删除指定用户,可以使用userdel
命令。
userdel postgres
出现如下告警,需要退出SSH
再进
userdel: user postgres is currently used by process 8243
切换用户进行安装
su postgres
下载源码
从清华大学镜像中下载,选择16.1
版本:https://mirrors.tuna.tsinghua.edu.cn/postgresql/source
wget https://mirrors.tuna.tsinghua.edu.cn/postgresql/source/v16.1/postgresql-16.1.tar.gz
解压
tar -zxvf postgresql-16.1.tar.gz
进入目录
cd postgresql-16.1
配置编译参数
./configure --prefix=/home/postgres/16.1 --with-libxml --with-libxslt
编译
make
安装
make install
初始化数据库
创建数据目录
mkdir -p /home/postgres/16.1/data
初始化数据库
/home/postgres/16.1/bin/initdb -D /home/postgres/16.1/data
初始化成功信息
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 "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.
fixing permissions on existing directory /home/postgresql/16.1/data ... 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
initdb: hint: 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:
/home/postgres/16.1/bin/pg_ctl -D /home/postgres/16.1/data -l logfile start
如果是root
用户启动,会得到以下报错
initdb: error: cannot be run as root
initdb: hint: Please log in (using, e.g., "su") as the (unprivileged) user that will own the server process.
启动服务
创建日志目录
mkdir -p /home/postgres/16.1/log
启动服务
/home/postgres/16.1/bin/pg_ctl -D /home/postgres/16.1/data -l /home/postgres/16.1/log/pg.log start
停止服务
/home/postgres/16.1/bin/pg_ctl -D /home/postgres/16.1/data -l /home/postgres/16.1/log/pg.log stop
重启服务
/home/postgres/16.1/bin/pg_ctl -D /home/postgres/16.1/data -l /home/postgres/16.1/log/pg.log restart
连接数据库
为psql
创建软链接
ln -s /home/postgres/16.1/bin/psql /usr/local/bin/psql
直接使用psql
即可
psql
root
用户连接
psql -d postgres -U postgres
Views: 179 · Posted: 2024-03-15
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb/LiteNote扫描下方二维码关注公众号和小程序↓↓↓
Loading...