PostgreSQL简介
PostgreSQL(简称 Postgres)是一款开源、企业级、稳定且功能非常强大的关系型数据库系统。
它始于 1986 年加州大学伯克利分校的 POSTGRES 项目,至今已经发展为:
最先进、最强大的开源关系数据库。
和 MySQL、SQLite 是同等级别的数据库产品,但定位更偏向企业级和高端应用。
与Mysql不同的是,Postgre在database和table之间还有一个schema层。默认的情况下,创建好database后会自动创建并应用一个public schema。
安装与基本使用
软件安装
首先更新Ubuntu系统软件包
1 | sudo apt install |
然后开始安装PostgreSQL
1 | sudo apt install postgresql postgresql-contrib |
检查是否安装成功
1 | sudo systemctl status postgresql |

显示active说明安装成功。
设置开机自启动
1 | sudo systemctl enable postgresql |

用户创建
安装后系统会创建一个系统用户:postgres。切换到该用户
1 | sudo su postgres |

然后进入postgresql控制台
1 | psql |

接下来在postgresql控制台中创建数据库用户 + 设置密码。
创建用户ming,设置密码为123456
1 | CREATE USER ming WITH PASSWORD '123456'; |

赋予ming用户,创建数据库的权限
1 | ALTER USER ming CREATEDB; |

查看用户
1 | \du |

创建数据库
1 | CREATE DATABASE mydb OWNER ming; |

列出当前所有数据库
1 | \l |

创建schema
默认的情况下,创建好database后会自动创建并应用一个public schema。
通过以下命令,查看当前数据库下所有的schema。
1 | \dn |
查看当前数据库正在使用的schema
1 | SHOW search_path; |

如果这个世界你直接创建表的话,默认会把所有的表放入public中。
你也可以创建新的schema,将表创建到新的schema中。
1 | CREATE SCHEMA myschema AUTHORIZATION ming; |
查看是否创建成功。

可以看到此时输入\dn,在数据库中已经有2个schema了。
切换当前使用的schema
1 | SET search_path TO myschema; |
查看是否切换成功。
1 | SHOW search_path; |

切换成功。
退出postgresql
1 | \q |
此时会自动返回终端

从系统命令行连接数据库
此时先在终端输入exit退出postgres用户

然后使用ming用户连接到postgresql的mydb数据库
1 | psql -U ming -d mydb |

一样可以输入\l查看当前数据库列表

配置远程登陆
经过前面的一些配置,我们已经可以在自己的本地登陆PostgreSQL,但是无法让其他机器远程访问我们的数据库,如果有这个需求,就需要继续完成以下配置。
首先退出postgresql数据库
1 | \q |
然后编辑配置文件:/etc/postgresql/*/main/postgresql.conf
1 | sudo vim /etc/postgresql/*/main/postgresql.conf |
找到#listen_addresses = 'localhost',约在第60行
将其修改为:listen_addresses = '*'

保存并推出。
然后编辑第二个配置文件/etc/postgresql/*/main/pg_hba.conf
1 | sudo vim /etc/postgresql/*/main/pg_hba.conf |
在该文件的最下方插入
1 | host all all 0.0.0.0/0 md5 |

至此,配置完成。