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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 提示词工程——AI应用必不可少的技术
· 地球OL攻略 —— 某应届生求职总结
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界