pgsql 之 centos 7下安装 15.2
一、下载网址:PostgreSQL: Linux downloads (Red Hat family)
因为RedHat 与 CentOs内核是一样的。
1、zlib 在PSQL中pg_dump和pg_restort中压缩文档需要用到该包
# yum install -y zlib.x86_64 zlib-devel.x86_64
# Install the repository RPM: sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm # Install PostgreSQL: sudo yum install -y postgresql15-server
如果会提示,依赖 libzstd包,可以去这个地方下载:
如果,指定的地址不存在,可以自己进去https://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/l/这个目录下找下现有的版本;然后安装 ;
https://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/l/libzstd-1.5.5-1.el7.x86_64.rpm rpm -ivh libzstd-1.5.5-1.el7.x86_64.rpm
然后再次安装 PostgreSQL:
sudo yum install -y postgresql15-server
三、初始化数据库
/usr/pgsql-15/bin/postgresql-15-setup initdb
设置数据库开机自动启动后启动数据库
systemctl enable postgresql-15 systemctl start postgresql-15
四 登录数据库及数据库的简单使用
检查postgresql数据库的操作系统用户,并切换至postgres用户
cat /etc/passwd postgres:x:26:26:PostgreSQL Server:/var/lib/pgsql:/bin/bash
su - postgres
启动PGSQL
psql
如果启动成功,系统 会提示"
psql (15.2)
输入 "help" 来获取帮助信息.
显示现有数据库(注意:postgres=# 是系统提示符,只用输入 \l 就可以,注意是小写的字母L ,不是数字1 ),
下一步是退出到操作系统 下, top -b -u postgres -d 1 -n 1 -c看下后台进程
postgres=# \l
[root@localhost ~]# top -b -u postgres -d 1 -n 1 -c top - 09:50:05 up 9:41, 1 user, load average: 0.05, 0.06, 0.11 Tasks: 99 total, 1 running, 98 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.0 us, 11.1 sy, 0.0 ni, 83.3 id, 0.0 wa, 0.0 hi, 5.6 si, 0.0 st KiB Mem : 3865284 total, 1684160 free, 964360 used, 1216764 buff/cache KiB Swap: 3145724 total, 3145724 free, 0 used. 2600184 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 12118 postgres 20 0 399532 17376 15932 S 0.0 0.4 0:00.04 /usr/pgsql-15/bin/postmaster -D /var/lib/pgsql/15/data/ 12121 postgres 20 0 250736 2128 712 S 0.0 0.1 0:00.00 postgres: logger 12122 postgres 20 0 399684 4408 2876 S 0.0 0.1 0:00.02 postgres: checkpointer 12123 postgres 20 0 399668 3364 1868 S 0.0 0.1 0:00.05 postgres: background writer 12125 postgres 20 0 399668 6268 4776 S 0.0 0.2 0:00.02 postgres: walwriter 12126 postgres 20 0 401152 3348 1588 S 0.0 0.1 0:00.00 postgres: autovacuum launcher 12127 postgres 20 0 401136 3092 1372 S 0.0 0.1 0:00.00 postgres: logica
五、如果要远程连接,
1、需更改pg_hba.conf文件,在#IPv4下加入 对IP的管理,0/0代表可以任意IP登录,生产环境请限指定IP段;
# IPv4 local connections: host all all 127.0.0.1/32 scram-sha-256 host all all 0/0 md5
2、修改postgresq.conf文件,将listen_addresses改为*
listen_addresses = '*'
3、修改登录PostgreSQL密码
#ALTER USER postgres WITH PASSWORD 'xxxxxxxxxxx';
ALTER ROLE
注:
密码postgres要用引号引起来,命令最后有分号
六、其它
pgsql 15安装完后,默认的数据库路径为:/var/lib/pgsql/15/data
也可以使用命令来显示 :
应用程序路径:/usr/pgsql-15/bin
也可以使用:show data_directory;或“echo $PGDATA”环境变量
select setting from pg_settings where name='data_directory';
安装后,数据库初始化,initdb 的时候会指定一个 PGDATA 目录,这就是 PostgresQL 存储数据的地方。。PGDATA 下面各项存储的内容大概是:
文件或目录名 存储内容
PG_VERSION PostgresQL 实例的版本号如 9.3 之类的
base 每个 database 会在 base 目录下有一个子目录
global Postgres 自己的 meta 数据库存放的地方(全局 DB)
pg_xlog WAL(Write Ahead Log 预写式日志)存放的地方
其他 其他不知道干啥的目录还有好多
base 目录是最重要的一个目录,放的是每一个 database 的数据。base 目录里的每一个数字目录对于一个 database 的 oid, 可以通过 查看 pg_database 这张表查看每一个 数据库的 oid 。
select oid, datname from pg_database ;
每一张表的数据(大部分)又是放在 base/(oid)/(relfilenode) 这个文件里面:
当然也可以利用一下语句:这样就可以拿到对应的表的相关数据;
select pg_relation_filepath('pg_statistic');
当然实际的存储不会这么简单。每一张表的文件都会有一些附加的存储文件,如文件名后加上 _fsm 的是空闲空间映射表 (Free Space Map)。另外 base/(dboid)/(relfilenode) 这个文件超过 1GB 以后,Postgres 会把这个文件拆分成不超过 1G 的多个文件,文件末尾加上 .1 .2 .3 … 做编号。 如 24589 24589.1 24589.2 。据说这是因为某些文件系统支持的最大文件大小有限制(如 fat32 只支持最大 4G )的文件。
原文链接:https://blog.csdn.net/qq_34484062/article/details/93210270
(96条消息) CentOS 7下安装PostgreSQL 15版本数据库(图文详细)_战·后风!!的博客-CSDN博客