世界上最先进的开源关系型数据库 ——PostgreSql 安装教程
简介
PostgreSQL
是一个免费的对象 - 关系数据库服务器 (ORDBMS),在灵活的 BSD 许可证下发行。
PostgreSQL
的 Slogan 是 “世界上最先进的开源关系型数据库”。
本次安装选择二进制源码包编译安装
服务器操作系统为 Centos7.6
,PostgreSql 安装版本为 14.0
安装包下载
在官网源码包选择 14.0
版本下载,下载地址:PostgreSQL: File Browser
准备工作
下载环境依赖
shell
1 | yum install -y cmake make gcc zlib zlib-devel gcc-c++ perl readline readline-devel python36 tcl openssl ncurses-devel openldap pam flex |
如果出现 File “/usr/bin/yum“, line 30 except KeyboardInterrupt, e:
这类错误,多半 yum 命令的 python 环境发生改变了,需要改回来:
shell
1 | cd /usr/bin |
创建 postgre 用户
shell
1 | groupadd postgres |
修改用户密码
此处修改密码即修改登录用户密码(如果你使用 postgres 作为登录用户的话)
shell
1 | passwd postgres |
如果使用弱密码方便登录时,可执行以下命令:
shell
1 | echo "123" | passwd --stdin postgres |
创建用户目录并授权
shell
1 | mkdir -p /home/postgres; |
开放防火墙端口
默认 5432
shell
1 | firewall-cmd --zone=public --add-port=5432/tcp --permanent; |
修改操作系统打开最大文件句柄数
shell
1 | echo "postgres soft nofile 65535" >> /etc/security/limits.conf |
重新登陆后,执行以下命令会出现 65535
shell
1 | su postgres |
创建数据库目录
shell
1 | mkdir -p /home/postgres/{postgre14,pgdata} |
编译并安装
shell
1 | su - postgres |
配置环境变量
shell
1 | cat >> ~/.bash_profile <<"EOF" |
数据库及参数初始化
shell
1 | /home/postgres/postgre14/bin/initdb -D $PGDATA -E UTF8 --locale=en_US.utf8 -U postgres |
指定
-D
数据目录,-E
字符编码,--locale
本及语言环境,-U
初始化用户信息。
修改配置文件
shell
1 | cat >> /home/postgres/pgdata/postgresql.conf <<"EOF" |
listen_addresses
表示 postgre 进程监听的网卡地址,配置*
表示监听所有。port
服务监听端口配置logging_collector=on
,启动日志收集器log_directory
表示日志文件在 PGDATA 目录下的文件夹位置。log_filename
表示日志文件的名称
配置访问权限
shell
1 | cat > /home/postgres/pgdata/pg_hba.conf << EOF |
启动数据库新建用户
shell
1 | 启动命令 |
新建用户
进入 postgresql 命令行
shell
1 | psql |
新建用户 postgres
shell
1 | alter user postgres with password 'password'; |
一般来说,我们的程序在运行过程中,不会直接使用 postgres 用户,而是新建一个用户。
shell
1 | 新建一个用户 acai |
实际上在生产环境中,我们需要创建两个用户,一个数据库管理用户用于管理表、视图等操作;另一个是程序用户,用于操作数据库表里面的数据,完成增删改查。
shell
1 | CREATE USER acaiuser WITH password '*******'; |
开机自启动
shell
1 | cat > /etc/systemd/system/postgre14.service <<"EOF" |
执行下列命令,使得 PostgreSQL 数据库开机自启动脚本生效。
shell
1 | systemctl daemon-reload |
后续再启停数据库,查看数据库状态,就可以使用下面的这些命令了
shell
1 | systemctl start postgre14 |
参考连接
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 枫叶!