二、PostgreSQL介绍
PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以加州大学计算机系开发的POSTGRES,4.2版本为基础的对象关系型数据库管理系统。POSTGRES的许多领先概念只是在比较迟的时候才出现在商业网站数据库中。PostgreSQL支持大部分的SQL标准并且提供了很多其他现代特性,如复杂查询、外键、触发器、视图、事务完整性、多版本并发控制等。同样,PostgreSQL也可以用许多方法扩展,例如通过增加新的数据类型、函数、操作符、聚集函数、索引方法、过程语言等。另外,因为许可证的灵活,任何人都可以以任何目的免费使用、修改和分发PostgreSQL。(——PostgreSQL_百度百科)
三、PostgreSQL安装
本实验基于CentOS 7.9系统进行演示操作
[root@postgresql ~]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core)
安装准备
修改主机名 # hostnamectl set-hostname prostgresql 关闭防火墙 # systemctl stop firewalld # systemctl disable firewalld 关闭SELinux安全模式 # setenforce 0 # getenforce 配置网络信息并测试连通性 vim /etc/sysconfig/network-scripts/ifcfg-ens32 主要修改如下参数信息即可。 BOOTPROTO=static ONBOOT=yes IPADDR=192.168.200.25 PREFIX=24 GATEWAY=192.168.200.1 DNS1=192.168.200.1 按:wq保存退出。 重启网卡 # systemctl restart network # ping bing.com 配置阿里云CentOS YUM源,加快镜像访问下载 参考链接:https://blog.csdn.net/qq_45392321/article/details/121450443 # yum clean all # yum makecache # yum repolist 升级系统🆙 # yum update 检查postgresql是否安装 # rpm -qa | grep postgre 检查PostgreSQL 安装位置 # rpm -qal | grep postgres 新增postgres用户组 # groupadd postgres 新增postgres用户并且设置这个postgres用户属于创建的postgres用户组 # useradd -g postgres postgres 修改postgres用户密码 [root@postgresql ~]# passwd postgres Changing password for user postgres. New password: BAD PASSWORD: The password is a palindrome Retype new password: passwd: all authentication tokens updated successfully. [root@postgresql ~]# 重启系统 reboot
1、查询并安装postgresql-server
yum list | grep postgresql-server yum install -y postgresql-server.x86_64
2、初始化postgresql-server数据库
service postgresql initdb
# service postgresql initdb Hint: the preferred way to do this is now "postgresql-setup initdb" Initializing database ... OK
3、启动postgresql服务并设置开机自启动
systemctl start postgresql systemctl enable postgresql
4、查看postgresql服务状态
systemctl status postgresql
5、查看服务进程信息
[root@postgresql ~]# ps -ef | grep postgres postgres 1405 1 0 16:05 ? 00:00:00 /usr/bin/postgres -D /var/lib/pgsql/data -p 5432 postgres 1406 1405 0 16:05 ? 00:00:00 postgres: logger process postgres 1408 1405 0 16:05 ? 00:00:00 postgres: checkpointer process postgres 1409 1405 0 16:05 ? 00:00:00 postgres: writer process postgres 1410 1405 0 16:05 ? 00:00:00 postgres: wal writer process postgres 1411 1405 0 16:05 ? 00:00:00 postgres: autovacuum launcher process postgres 1412 1405 0 16:05 ? 00:00:00 postgres: stats collector process root 1440 1131 0 16:07 pts/0 00:00:00 grep --color=auto postgres [root@postgresql ~]#
6、查看postgresql服务端口是否开启
# ss -tunpl | grep postgres tcp LISTEN 0 128 127.0.0.1:5432 *:* users:(("postgres",pid=1349,fd=4)) tcp LISTEN 0 128 [::1]:5432 [::]:* users:(("postgres",pid=1349,fd=3)) [root@postgresql ~]#
# netstat -tunpl | grep 5432 tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN 1349/postgres tcp6 0 0 ::1:5432 :::* LISTEN 1349/postgres
四、测试连接
1、切换postgres用户
[root@postgresql ~]# su postgres [postgres@postgresql root]$
2、连接数据库
[root@postgresql ~]# su postgres [postgres@postgresql root]$ psql -U postgres could not change directory to "/root" psql (9.2.24) Type "help" for help. postgres=# # 使用 \l 用于查看已经存在的数据库: postgres=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+----------+-----------+---------+-------+----------------------- postgres | postgres | SQL_ASCII | C | C | template0 | postgres | SQL_ASCII | C | C | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | SQL_ASCII | C | C | =c/postgres + | | | | | postgres=CTc/postgres (3 rows) postgres=# # 进入命令行工具,可以使用 \help 来查看各个命令的语法 postgres-# \help
3、创建数据库
# 创建一个 runoobdb 的数据库 postgres=# CREATE DATABASE xybdiy; CREATE DATABASE postgres=# # 使用 \c + 数据库名 来进入数据库 postgres=# \c xybdiy You are now connected to database "xybdiy" as user "postgres". xybdiy=#
4、创建表格
# 创建了一个表,表名为 COMPANY 表格,主键为 ID,NOT NULL 表示字段不允许包含 NULL 值 xybdiy=# CREATE TABLE COMPANY( xybdiy(# ID INT PRIMARY KEY NOT NULL, xybdiy(# NAME TEXT NOT NULL, xybdiy(# AGE INT NOT NULL, xybdiy(# ADDRESS CHAR(50), xybdiy(# SALARY REAL xybdiy(# ); NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "company_pkey" for table "company" CREATE TABLE # 使用 \d 命令来查看表格是否创建成功 xybdiy=# \d List of relations Schema | Name | Type | Owner --------+---------+-------+---------- public | company | table | postgres (1 row) xybdiy=# CREATE TABLE DEPARTMENT( xybdiy(# ID INT PRIMARY KEY NOT NULL, xybdiy(# DEPT CHAR(50) NOT NULL, xybdiy(# EMP_ID INT NOT NULL xybdiy(# ); NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "department_pkey" for table "department" CREATE TABLE xybdiy=# \d List of relations Schema | Name | Type | Owner --------+------------+-------+---------- public | company | table | postgres public | department | table | postgres (2 rows) xybdiy=#
五、修改配置文件
1、修改postgresql的配置文件
# vim /var/lib/pgsql/data/postgresql.conf # 修改监听IP listen_addresses = '*' # 打开日志采集器 logging_collector = on # 设置日志目录 log_directory = 'pg_log'
2、修改 pg_hba.conf 服务连接配置文件
# vim /var/lib/pgsql/data/pg_hba.conf 77 # TYPE DATABASE USER ADDRESS METHOD 78 79 # "local" is for Unix domain socket connections only 80 local all all trust 81 # IPv4 local connections: 82 host all all 127.0.0.1/32 trust 83 host all all 0.0.0.0/0 trust 84 # IPv6 local connections: 85 host all all ::1/128 md5
3、重启postgresql服务
# systemctl restart postgresql
五、测试远程连接
测试连接
测试成功后,连接
连接成功
至此,安装PostgreSQL数据库完成。