PostgreSQL 的安装配置

安装

sudo apt-get install postgresql

安装完成后,默认会:

  • 创建名为 postgres 的 Linux 用户
  • 创建名为 postgres、不带密码的默认数据库账号作为数据库管理员
  • 创建名为 postgres 的数据库

安装完成后的一些默认信息如下:

config  /etc/postgresql/9.5/main 
data    /var/lib/postgresql/9.5/main 
locale  en_US.UTF-8 
socket  /var/run/postgresql 
port    5432

安装后 Postgres 会自动启动

配置数据库以允许远程连接访问

安装完成后,默认只能本地才能连接数据库,其他机子访问不了,需要以下步骤让其他机子访问

a.  修改监听地址
    sudo vi /etc/postgresql/9.5/main/postgresql.conf 
    将 listen_addresses = 'localhost' 的注释去掉并改为 listen_addresses = '*' 
        
b.  修改可访问用户的IP段
    sudo vi /etc/postgresql/9.5/main/pg_hba.conf 
    在文件末尾添加: host all all 0.0.0.0 0.0.0.0 md5 ,表示允许任何IP连接
    
c.  重启数据库
    sudo /etc/init.d/postgresql restart

这样就可以通过其他机器访问了

以默认管理员账号 postgres 登录

安装后有一个不需要密码的管理员账号 postgres 可以登录

sudo -u postgres psql

设置密码

alter user postgres with password '123456';

一些基本命令

\password:          设置密码
\q:                 退出
\h:                 查看 SQL 命令的解释,比如 \h select
\?:                 查看 psql 命令列表
\l:                 列出所有数据库
\c [database]:      连接其他数据库
\d:                 列出所有表格
\d+:                列出更详细信息
\d [table]:         列出某一张表格的结构
\du:                列出所有用户
\dS:                列出系统信息
\dn:                列出 schema 信息
\e:                 打开文本编辑器
\conninfo:          列出当前数据库和连接的信息

输出格式可以通过 \pset 设置

添加新用户、新数据库、新表、新 Schema

create user my_user with password '123456';
create database my_db owner my_user;
grant all privileges on database my_db to my_user;

## 退出后用 my_user 登录 my_db

CREATE TABLE my_table (
    id SERIAL PRIMARY KEY,
    name VARCHAR(20) NOT NULL, 
    salary INTEGER, 
    birthday timestamp default('1970-01-01 00:00:00')
);

\d               ## 可以看到 my_table
\d my_table      ## 查看 my_table 的结构

CREATE SCHEMA my_schema;
GRANT ALL ON SCHEMA my_schema TO my_user;
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA my_schema TO my_user;

CREATE TABLE my_schema.my_table_2 (
    id VARCHAR(20) NOT NULL,
    name VARCHAR(20), 
    salary INTEGER, 
    birthday timestamp default('1970-01-01 00:00:00'),

    constraint pk_tbl_primary primary key (id, name)
);

\d               ## 看不到 my_table_2
\d my_schema.*   ## 可以看到 my_table_2

alter user my_user set search_path to my_schema;    ## 改变用户的默认 schema

## 退出后重新以 my_user 登录 my_db

\d               ## 可以看到 my_table_2 了,因为现在 my_user 的默认 schema 改成了 my_schema

SHOW search_path;

\dn              ## 查看 schema

另一种链接方式

psql postgresql://username@hostname:port/database?sslmode=require


posted @   moon~light  阅读(253)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 提示词工程——AI应用必不可少的技术
· 地球OL攻略 —— 某应届生求职总结
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界
点击右上角即可分享
微信分享提示