東川印記

一本東川,笑看爭龍斗虎;寰茫兦者,度橫佰昧人生。

CentOS7.9安装PostgreSQL14

2022年8月31日星期三



找了一遭不知道安哪个,那就选个新的吧。。。。

官方地址 https://www.postgresql.org/download/linux/redhat/

有教程

1,安装

[root@SENRSL01 senrsl]# sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

[root@SENRSL01 senrsl]# sudo yum install -y postgresql14-server

[root@SENRSL01 senrsl]# /usr/pgsql-14/bin/postgresql-14-setup initdb
Initializing database ... OK

[root@SENRSL01 senrsl]# systemctl enable postgresql-14
Created symlink from /etc/systemd/system/multi-user.target.wants/postgresql-14.service to /usr/lib/systemd/system/postgresql-14.service.
[root@SENRSL01 senrsl]# systemctl start postgresql-14
[root@SENRSL01 senrsl]#

2,远程用户

安装后自动创建postgres用户,无密码

[root@SENRSL01 ~]# su - postgres 

-bash-4.2$ psql -U postgres
psql (14.5)
输入 "help" 来获取帮助信息.

postgres=# alter user postgres with encrypted password '012345';  //设置默认创建的用户的密码
ALTER ROLE
postgres=#

也可以创建用户

[root@SENRSL01 senrsl]# psql
psql: 错误: 连接到套接字"/var/run/postgresql/.s.PGSQL.5432"上的服务器失败:致命错误:  角色 "root" 不存在
[root@SENRSL01 senrsl]# su - postgres
-bash-4.2$ pwd
/var/lib/pgsql
-bash-4.2$ psql
psql (14.5)
输入 "help" 来获取帮助信息.
postgres=# create user senrsl with password '012345';
CREATE ROLE
postgres=# create database test22 owner senrsl;
CREATE DATABASE
postgres=# grant all privileges on database test22 to senrsl;
GRANT
postgres=# \q
-bash-4.2$

每条语句后面要加 ;。。。。

3,开启远程访问

postgres-# \q   //退出数据库
-bash-4.2$ vi /var/lib/pgsql/14/data/postgresql.conf

修改

# - Connection Settings -

listen_addresses = '*'          # what IP address(es) to listen on;
                                        # comma-separated list of addresses;
                                        # defaults to 'localhost'; use '*' for all
                                        # (change requires restart)
port = 5432                             # (change requires restart)

-bash-4.2$ vi /var/lib/pgsql/14/data/pg_hba.conf

修改

# IPv4 local connections:
host    all             all             127.0.0.1/32            scram-sha-256
host    all             all             0.0.0.0/0               md5
# IPv6 local connections:

重启服务

-bash-4.2$ su - root
密码:
上一次登录:三 8月 31 16:14:22 CST 2022pts/0 上
[root@SENRSL01 ~]# systemctl restart postgresql-14.service
[root@SENRSL01 ~]#

尝试连接,发现5432端口不通。。。。


4, 防火墙

[root@SENRSL01 ~]# firewall-cmd --permanent --add-port=5432/tcp
success
[root@SENRSL01 ~]# systemctl restart firewalld
[root@SENRSL01 ~]# systemctl restart postgresql-14
[root@SENRSL01 ~]#


此时再去连接,就通了。。。。

配图2

5,命令行

[root@SENRSL01 ~]# psql -h 127.0.0.1 -p 5432 -U postgres  //接入postgres数据库,库名为postgres
用户 postgres 的口令:
psql (14.5)
输入 "help" 来获取帮助信息.

postgres=# \l
                                     数据库列表
   名称    |  拥有者  | 字元编码 |  校对规则   |    Ctype    |       存取权限        
-----------+----------+----------+-------------+-------------+-----------------------
 postgres  | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 |
 template0 | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 template1 | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 test22    | senrsl   | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | =Tc/senrsl           +
           |          |          |             |             | senrsl=CTc/senrsl
(4 行记录)

postgres=# \c postgres
您现在已经连接到数据库 "postgres",用户 "postgres".
postgres=# \dt
没有找到任何关系.
postgres=# \c test22
您现在已经连接到数据库 "test22",用户 "postgres".
test22=# \dt
没有找到任何关系.
test22=# \d
没有找到任何关系.
test22=# \encoding
UTF8
test22=# \q
[root@SENRSL01 ~]#


1)库操作

postgres=# \c test22
您现在已经连接到数据库 "test22",用户 "postgres".
test22=# create database test2208;
CREATE DATABASE
test22=# \l
                                     数据库列表
   名称    |  拥有者  | 字元编码 |  校对规则   |    Ctype    |       存取权限        
-----------+----------+----------+-------------+-------------+-----------------------
 postgres  | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 |
 template0 | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 template1 | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 test22    | senrsl   | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | =Tc/senrsl           +
           |          |          |             |             | senrsl=CTc/senrsl
 test2208  | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 |
(5 行记录)

test22=# \c test2208
您现在已经连接到数据库 "test2208",用户 "postgres".
test2208=# \c test22;
您现在已经连接到数据库 "test22",用户 "postgres".

test22=# drop database test2208;
DROP DATABASE
test22=# \l
                                     数据库列表
   名称    |  拥有者  | 字元编码 |  校对规则   |    Ctype    |       存取权限        
-----------+----------+----------+-------------+-------------+-----------------------
 postgres  | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 |
 template0 | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 template1 | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 test22    | senrsl   | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | =Tc/senrsl           +
           |          |          |             |             | senrsl=CTc/senrsl
(4 行记录)

2)表操作

test22=# create table t_user(id int primary key not null,name varchar(128));
CREATE TABLE
test22=# \d
               关联列表
 架构模式 |  名称  |  类型  |  拥有者  
----------+--------+--------+----------
 public   | t_user | 数据表 | postgres
(1 行记录)

test22=# insert into t_user values(1,'a');
INSERT 0 1
test22=# select * from t_user;
 id | name
----+------
  1 | a
(1 行记录)

test22=#


支持常规的SQL语法。。。。



--
senRsl
2022年08月31日15:58:54

没有评论 :

发表评论