已解决
PostgreSQL单机编译安装手册
来自网友在路上 174874提问 提问时间:2023-10-11 10:07:52阅读次数: 74
最佳答案 问答题库748位专家为你答疑解惑
PostgreSQL单机编译安装手册
- 准备工作
- 编译安装
- 初始化数据库
- 修改配置文件
🌻下载二进制安装包:https://www.postgresql.org/ftp/source/
准备工作
# 检查是否已安装
rpm -qa | grep postgres# 创建安装用户
groupadd postgres
useradd -g postgres -d /home/postgres -s /bin/bash postgres# 创建安装目录
mkdir /opt/postgres
mv postgresql-9.2.4.tar.gz /opt/postgres
chown -R postgres:postgres /opt/postgres
编译安装
编译安装:
yum install -y zlib-devel gcc makecd /opt/postgres
tar -xvf postgresql-9.2.4.tar.gzcd postgresql-9.2.4/
./configuremake && make install
添加环境变量:
chown -R postgres:postgres /opt/postgres
su - postgresecho 'export PATH=$PATH:/usr/local/pgsql/bin' >> .bash_profile
echo 'export PGDATA=/pgdata' >> .bash_profile
echo 'export PGLOG=/pgdata/server.log' >> .bash_profilesource .bash_profile
初始化数据库
创建数据目录,初始化数据库:
# 创建数据目录
mkdir /pgdata
chown -R postgres:postgres /pgdata# 以postgres用户初始化数据库
su - postgres
initdb -D /pgdata -U postgres# 启动数据库
pg_ctl -D /pgdata -l /pgdata/server.log start
检查数据库日志、端口和进程:
[postgres@dbhost ~]$ tail -f /pgdata/server.log
LOG: could not bind IPv4 socket: Address already in use
HINT: Is another postmaster already running on port 5432? If not, wait a few seconds and retry.
LOG: database system was shut down at 2023-10-10 11:03:49 CST
LOG: database system is ready to accept connections
LOG: autovacuum launcher started
^C
[postgres@dbhost ~]$ ss -antpl | grep 5432
LISTEN 0 208 127.0.0.1:5432 *:* users:(("postgres",pid=68688,fd=4))
LISTEN 0 208 [::1]:5432 [::]:* users:(("postgres",pid=68688,fd=3))[postgres@dbhost ~]$ ps -ef | grep postgres
root 68464 53923 0 11:03 pts/0 00:00:00 su - postgres
postgres 68465 68464 0 11:03 pts/0 00:00:00 -bash
postgres 68688 1 0 11:05 pts/0 00:00:00 /usr/local/pgsql/bin/postgres -D /pgdata
postgres 68702 68688 0 11:05 ? 00:00:00 postgres: checkpointer process
postgres 68703 68688 0 11:05 ? 00:00:00 postgres: writer process
postgres 68704 68688 0 11:05 ? 00:00:00 postgres: wal writer process
postgres 68705 68688 0 11:05 ? 00:00:00 postgres: autovacuum launcher process
postgres 68706 68688 0 11:05 ? 00:00:00 postgres: stats collector process
postgres 68772 68465 0 11:06 pts/0 00:00:00 ps -ef
postgres 68773 68465 0 11:06 pts/0 00:00:00 grep --color=auto postgres
使用psql命令连接到数据库:
[postgres@dbhost ~]$ psql
psql (9.2.4)
Type "help" for help.postgres=# \lList of databasesName | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+-------------+-------------+-----------------------postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +| | | | | postgres=CTc/postgrestemplate1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +| | | | | postgres=CTc/postgres
(3 rows)postgres=# \c postgres
You are now connected to database "postgres" as user "postgres".
postgres=# \d
No relations found.
postgres=# \dSList of relationsSchema | Name | Type | Owner
------------+---------------------------------+-------+----------pg_catalog | pg_aggregate | table | postgrespg_catalog | pg_am | table | postgrespg_catalog | pg_amop | table | postgrespg_catalog | pg_amproc | table | postgrespg_catalog | pg_attrdef | table | postgrespg_catalog | pg_authid | table | postgrespg_catalog | pg_available_extension_versions | view | postgrespg_catalog | pg_available_extensions | view | postgres
...
postgres=#
postgres=# \q
修改配置文件
PostgreSQL的数据库配置文件是位于数据目录下的postgresql.conf
和pg_hba.conf
。
# 修改共享内存为服务器物理内存的25%
[postgres@dbhost ~]$ cat /pgdata/postgresql.conf | grep shared_buffer
shared_buffers = 32MB # min 128kB
#wal_buffers = -1 # min 32kB, -1 sets based on shared_buffers[postgres@dbhost ~]$ vi /pgdata/postgresql.conf
[postgres@dbhost ~]$ cat /pgdata/postgresql.conf | grep shared_buffer
shared_buffers = 1024MB
#shared_buffers = 32MB # min 128kB
#wal_buffers = -1 # min 32kB, -1 sets based on shared_buffers# 修改监听地址
[postgres@dbhost ~]$ cat /pgdata/postgresql.conf | grep -n listen
59:#listen_addresses = 'localhost' # what IP address(es) to listen on;[postgres@dbhost ~]$ vi /pgdata/postgresql.conf
[postgres@dbhost ~]$ cat /pgdata/postgresql.conf | grep -n listen
59:listen_addresses = '*' # 添加此行
60:#listen_addresses = 'localhost' # what IP address(es) to listen on;# 添加允许连接的客户端地址
[postgres@dbhost ~]$ cat /pgdata/pg_hba.conf | grep -A2 'IPv4 local connections'
# IPv4 local connections:
host all all 127.0.0.1/32 trust
# IPv6 local connections:[postgres@dbhost ~]$ vi /pgdata/pg_hba.conf
[postgres@dbhost ~]$ cat /pgdata/pg_hba.conf | grep -A2 'IPv4 local connections'
# IPv4 local connections:
host all all 127.0.0.1/32 trust
host all all 0.0.0.0/0 trust # 添加此行
重启数据库:
echo $PGDATA
pg_ctl stop
pg_ctl -D $PGDATA -l $PGLOG start
检查配置参数:
postgres=# show data_directory;data_directory
----------------/pgdata
(1 row)postgres=# show shared_buffers;shared_buffers
----------------1GB
(1 row)postgres=# select name,setting from pg_settings where name='data_directory';name | setting
----------------+---------data_directory | /pgdata
(1 row)
查看全文
99%的人还看了
相似问题
- MySQL数据库:开源且强大的关系型数据库管理系统
- 【腾讯云云上实验室-向量数据库】探索腾讯云向量数据库:全方位管理与高效利用多维向量数据的引领者
- 【史上最细教程】服务器MySQL数据库完成主从复制
- 字符串结尾空格比较相关参数BLANK_PAD_MODE(DM8:达梦数据库)
- 缓存雪崩、击穿、穿透及解决方案_保证缓存和数据库一致性
- Redis 与其他数据库的不同之处 | Navicat
- 多协议数据库管理软件 Navicat Premium 16 mac中文版功能
- (数据库管理系统)DBMS与(数据库系统)DBS的区别
- duplicate复制数据库单个数据文件复制失败报错rman-03009 ora-03113
- 数据库课后习题加真题
猜你感兴趣
版权申明
本文"PostgreSQL单机编译安装手册":http://eshow365.cn/6-18893-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!
- 上一篇: 华为OD机考算法题:找终点
- 下一篇: 【开题报告】如何借助chatgpt完成毕业论文开题报告