1. 安装 PostgreSQL 包
- 使用
apt-get
命令安装 PostgreSQL 客户端和服务器包:
sudo apt update
sudo apt install postgresql postgresql-client
2. 启动 PostgreSQL 服务
- 在 Ubuntu 中,PostgreSQL 服务默认会自动启动。
- 你可以使用以下命令来启动服务:
sudo systemctl start postgresql
sudo systemctl enable postgresql
3. 配置 PostgreSQL
- 在 Ubuntu 中,PostgreSQL 的配置文件通常位于
/etc/postgresql/{version}/main/
4. 创建新用户X
#登录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
命令行界面中,授权给特定用户
- 或者一步到位:你可以在创建数据库时直接指定所有者:
CREATE DATABASE Y OWNER X;
6. 创建数据库Y的表incoming_test schema=public
sudo -u X psql Y # -h localhost -p 5432 -w ; -w指无密码登录
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
);
\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
- 查看该数据库的表:执行命令
\dt
- 查询该数据库的表:与mysql一致的
select语句
- postgres 查看全部数据库
- 查询的字段较多,可用直接回车换行连续输入,达到折叠的效果
8.删除数据库Y的incoming_test表
- 连接psql数据库
- 切换到指定的数据库:
\c dbname
- 删除该表:
drop table if exists incoming_test;
- \dt \dt+等为psql元命令,不必以;结束
- 其他sql,如mysql那样,必须;结束
9.删除数据库Y
sudo -u X psql #若失败,可用postgres超级用户登录
DROP DATABASE IF EXISTS Y;
\q
10. 删除用户X
sudo -u postgres psql
DROP ROLE IF EXISTS X;
\q
11.完全卸载 PostgreSQL
sudo systemctl stop 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没有真正运行的问题