目前也没啥正经用途,感觉以后整活可能会用得上,先在机器上跑起来吧。
安装PostgreSQL
| 1
 | sudo apt-get install postgresql postgresql-client
 | 
安装完毕后,系统会创建一个数据库超级用户 postgres,密码为空。
访问PostgreSQL,并且可以进行交互,输入\q以退出。
| 12
 3
 4
 5
 
 | yankf@overstars:~/db$ sudo -u postgres psqlpsql (16.8 (Ubuntu 16.8-0ubuntu0.24.04.1))
 Type "help" for help.
 
 postgres=
 
 | 
创建用户和数据库
新建一个用户kiriya
| 1
 | sudo su - postgres -c "createuser kiriya"
 | 
新建数据库straycat
| 1
 | sudo su - postgres -c "createdb straycat"
 | 
修改用户密码(postgres交互访问)
| 1
 | alter role kiriya with password '**********';
 | 
将数据库straycat授权给kiriya:
| 12
 3
 4
 
 | grant all privileges on database straycat to kiriya;
 
 GRANT CREATE, USAGE ON SCHEMA public TO kiriya;
 
 | 
自动授权未来新建表的权限
| 12
 
 | ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON TABLES TO kiriya;
 
 | 
刷新权限
| 1
 | REASSIGN OWNED BY kiriya TO postgres;
 | 
新建schema
先\c确认下自己连的哪个数据库。
连接到数据库
| 1
 | psql -U kiriya -d straycat -h localhost -W '*********'
 | 
AUTHORIZATION kiriya 指定 kiriya 用户为 Schema 的所有者
| 12
 
 | CREATE SCHEMA kiriya_schema AUTHORIZATION kiriya;grant all privileges on schema kiriya_schema to kiriya;
 
 | 
授权
| 1
 | GRANT USAGE, CREATE ON SCHEMA kiriya_schema TO kiriya;
 | 
设置未来对象的默认权限
| 12
 
 | ALTER DEFAULT PRIVILEGES IN SCHEMA kiriya_schema GRANT ALL ON TABLES TO kiriya;
 
 | 
配置用户默认搜索路径
| 1
 | ALTER ROLE kiriya SET search_path TO kiriya_schema, public;
 | 
配置远程访问
需要修改两个配置文件:postgresql.conf和pg_hba.conf。
修改 postgresql.conf 监听地址
| 1
 | vim /etc/postgresql/{版本}/main/postgresql.conf
 | 
修改 listen_addresses 参数
| 12
 
 | listen_addresses = '*'  port = 5432
 
 | 
配置客户端访问权限(pg_hba.conf)
| 1
 | vim /etc/postgresql/{版本}/main/pg_hba.conf
 | 
添加一行
| 12
 
 | # TYPE  DATABASE        USER            ADDRESS                 METHODhost    all             kiriya          0.0.0.0/0               md5
 
 | 
重启
| 1
 | systemctl restart postgresql
 | 
本地访问
| 1
 | psql -h localhost -p 5432 -d straycat -U kiriya
 | 
安装后测试连接TCP/IP connections失败解决方法
| 12
 3
 
 | 已失败DBMS: PostgreSQL (版本 12.16 (Ubuntu 12.16-0ubuntu0.20.04.1))  区分大小写: 普通形式=lower,分隔形式=exact 驱动程序: PostgreSQL JDBC Driver (版本 42.6.0,JDBC4.2)
 Connection to xxx.xxx.xxx.xxx:5432 refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.
 
 | 
TCP/IP连接建立失败,宿主机并没有监听其他的主机接口。
按如下操作进行设置:
| 1
 | vim /etc/postgresql/12/main/postgresql.conf
 | 
对配置文件进行编辑
| 12
 3
 4
 5
 6
 7
 8
 9
 
 | 58 # - Connection Settings -59
 60 listen_addresses =
 61                     # comma-separated list of addresses;
 62                     # defaults to
 63                     # (change requires restart)
 64 port = 5432             # (change requires restart)
 65 max_connections = 100           # (change requires restart)
 66 #superuser_reserved_connections = 3 # (change requires restart)
 
 | 
修改 允许访问配置pg_hba.conf
| 12
 3
 
 | vim /etc/postgresql/12/main/pg_hba.conf添加
 host    all             postgres        0.0.0.0/0               md5
 
 | 
可能是PostgreSQL认为“postgres”不是“all”用户,所以USER里不应该填all……重启
| 1
 | systemctl restart postgresql
 | 
检查
| 12
 
 | netstat -lantp ps aux | grep postgres
 
 | 
测试链接
| 12
 3
 
 | 已成功复制
 DBMS: PostgreSQL (版本 12.16 (Ubuntu 12.16-0ubuntu0.20.04.1))  区分大小写: 普通形式=lower,分隔形式=exact 驱动程序: PostgreSQL JDBC Driver (版本 42.6.0,JDBC4.2)  Ping: 14毫秒 SSL: yes
 
 |