Ubuntu 安装PostgreSQL

1. 安装 PostgreSQL 包

  • 使用 apt-get 命令安装 PostgreSQL 客户端和服务器包:
sudo apt update
sudo apt install postgresql postgresql-client

2. 启动 PostgreSQL 服务

  • 在 Ubuntu 中,PostgreSQL 服务默认会自动启动。
  • 你可以使用以下命令来启动服务:
sudo systemctl start postgresql
  • 设置 PostgreSQL 服务开机自启:
sudo systemctl enable postgresql

3. 配置 PostgreSQL

  • 在 Ubuntu 中,PostgreSQL 的配置文件通常位于 /etc/postgresql/{version}/main/

4. 创建新用户X

  • 以PostgreSQL 超级用户登录psql
#登录psql
sudo -u postgres psql
  • psql命令行界面里,创建新用户X
  • root 用户在 PostgreSQL 中通常已经存在
  • 你可能需要使用其他用户名
CREATE ROLE X LOGIN;
  • 或者直接一步到位:创建用户
sudo -u postgres createuser --username postgres X

5. 创建新数据库Y

  • psql 命令行界面中,使用 CREATE DATABASE 命令创建新的数据库。
    • 例如,如果你想创建名为 Y 的数据库,可以执行以下命令:
      CREATE DATABASE Y;
      
  • psql命令行界面中,授权给特定用户
    • 例如,你可以将数据库 Y 的所有者设置为新用户X:
      ALTER DATABASE Y OWNER TO X;
      
  • 或者一步到位:你可以在创建数据库时直接指定所有者:
CREATE DATABASE Y OWNER X;

6. 创建数据库Y的表incoming_test schema=public

  • 用新用户X登录PostgreSQL 数据库Y:
sudo -u X psql Y # -h localhost -p 5432 -w ; -w指无密码登录
  • psql 命令行界面中创建表:
CREATE TABLE incoming_test (
recorded_on TIMESTAMP WITH TIME ZONE NOT NULL,
"Accounting-Record-Type" INTEGER,
"Session-Id" BYTEA,
"Accounting-Record-Number" INTEGER,
"Route-Record1" BYTEA,
"Route-Record2" BYTEA,
"Route-Record3" BYTEA,
"Route-Record4" BYTEA
);
  • 退出 psql
\q
6.1 psql登录失败的处理
  • 修改 /etc/postgresql/XX/main/pg_hba.conf文件
  • 将local all all peer -> local all all trust
  • 重启postgresql服务
6.2 psql api登录失败的处理
  • 修改 /etc/postgresql/XX/main/pg_hba.conf文件
  • 将host all all 127.0.0.1/32 peer -> host all all 127.0.0.1/32 trust
  • 重启postgresql服务

7. 查询数据库Y

  • 利用新用户X登录数据库Y
    • 查看数据库:执行命令 \l
      • 效果类似mysql的show databases;
    • 选择数据库:执行命令 \c database
      • 效果类似mysql的use database;
    • 查看该数据库的表:执行命令 \dt
      • 效果类似mysql的show tables;
    • 查询该数据库的表:与mysql一致的select语句
  • postgres 查看全部数据库
  • 查询的字段较多,可用直接回车换行连续输入,达到折叠的效果

8.删除数据库Y的incoming_test表

  • 连接psql数据库
  • 切换到指定的数据库:\c dbname
  • 删除该表: drop table if exists incoming_test;
  • \dt \dt+等为psql元命令,不必以;结束
  • 其他sql,如mysql那样,必须;结束

9.删除数据库Y

  • 登录到 PostgreSQL
sudo -u X psql #若失败,可用postgres超级用户登录
  • 删除数据库
DROP DATABASE IF EXISTS Y;
  • 退出 psql
\q

10. 删除用户X

  • 登录到 PostgreSQL
sudo -u postgres psql
  • 删除用户X
DROP ROLE IF EXISTS X;
  • 退出 psql
\q

11.完全卸载 PostgreSQL

  • 停止 PostgreSQL 服务
sudo systemctl stop postgresql
  • 卸载 PostgreSQL 包
sudo apt remove --purge postgresql postgresql-contrib
  • 删除 PostgreSQL 数据文件**: 慎重 可跳过
sudo rm -rf /var/lib/postgresql/*
  • 清理残留文件
sudo apt autoremove
sudo apt clean
10.1 想恢复PostgreSQL 数据目录
# 重建目录
sudo mkdir -p /var/lib/postgresql/XX/main
# 更改权限
sudo chown -R postgres:postgres /var/lib/postgresql/XX/main
# 重建数据库存储目录
sudo -u postgres /usr/lib/postgresql/XX/bin/initdb -D /var/lib/postgresql/XX/main
# 之后能解决该目录异常为空,postgresql没有真正运行的问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值