PostgreSQL - 安装和配置

在Ubuntu中安装PostgreSQL(16)后,登录和配置账号密码的步骤如下:


添加 PostgreSQL 官方仓库【可选】

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

导入 GPG 密钥【可选】

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

1. 安装PostgreSQL

如果尚未安装,先执行以下命令:

sudo apt update
sudo apt install -y postgresql postgresql-contrib postgresql-client postgresql-16-pgvector
  • postgresql:数据库核心服务。
  • postgresql-contrib:提供JSON操作、全文搜索等扩展功能。
  • postgresql-client:客户端工具
  • postgresql-16-pgvector:向量查询支持
    以上可选择性安装

2. 确认PostgreSQL服务状态

确保服务已启动:

sudo systemctl status postgresql

若未启动,手动启动:

sudo systemctl start postgresql

如需自定义存储位置,如下操作

sudo systemctl stop postgresql
sudo mkdir -p /mnt/pgdata
sudo chown -R postgres:postgres /mnt/pgdata
sudo chmod 700 /mnt/pgdata
# 手动初始化数据(需切换到 postgres 用户)
sudo -u postgres /usr/lib/postgresql/16/bin/initdb -D /mnt/pgdata

3. 登录PostgreSQL

PostgreSQL默认会创建一个系统用户 postgres(与数据库超级用户同名),需切换到该用户登录:

sudo -i -u postgres

然后使用 psql 命令行工具连接数据库:

psql

此时会进入PostgreSQL交互界面,提示符为 postgres=#(超级用户模式)。


4. 修改默认用户密码

psql 界面中执行以下SQL命令修改密码(将 new_password 替换为你的密码):

ALTER USER postgres WITH PASSWORD 'new_password';

确认修改成功:

\du  -- 查看用户列表及权限

查看用户名和密码,密码哈希算法通常是 MD5 或 SCRAM-SHA-256(取决于 PostgreSQL 版本和配置),如果密码前缀有加密方法标识,则说明修改密码成功

SELECT usename, passwd FROM pg_shadow;

5. 退出PostgreSQL

输入以下命令退出:

\q

然后退出 postgres 用户:

exit

6. 配置远程访问(可选)

如果需要从外部连接数据库,需修改以下配置文件:

修改 pg_hba.conf

编辑文件:

sudo nano /etc/postgresql/*/main/pg_hba.conf

在文件末尾添加或修改规则(示例允许所有IP通过密码连接):

# TYPE  DATABASE        USER            ADDRESS                 METHOD
host    all             all             0.0.0.0/0               scram-sha-256

修改 postgresql.conf

编辑文件:

sudo nano /etc/postgresql/*/main/postgresql.conf

找到 listen_addresses 并修改为:

listen_addresses = '*'  # 允许监听所有IP

重启PostgreSQL生效

sudo systemctl restart postgresql

7. 使用新密码登录

命令行登录

psql -U postgres -h 127.0.0.1 -d postgres

输入密码后即可进入。

图形化工具连接

如使用 pgAdminDBeaver,填写以下信息:

  • Host: localhost(或服务器IP)
  • Port: 5432(默认)
  • Username: postgres
  • Password: 你设置的密码

8. 创建新用户和数据库(可选)

如果需要创建独立用户和数据库:

-- 登录postgres用户
sudo -u postgres psql

-- 创建新用户并设置密码
CREATE USER myuser WITH PASSWORD 'mypassword';

-- 创建数据库并授权
CREATE DATABASE mydb OWNER myuser;

-- 授予权限(可选)
GRANT ALL PRIVILEGES ON DATABASE mydb TO myuser;

安装扩展

安装向量扩展

CREATE EXTENSION IF NOT EXISTS vector;

查询扩展信息

SELECT extname AS "Name",extversion AS "Version",extowner::regrole AS "Owner",extnamespace::regnamespace AS "Schema" FROM pg_extension;

常见问题

  1. 密码认证失败

    • 检查 pg_hba.conf 是否允许密码认证(md5scram-sha-256)。
    • 确保修改后重启了服务。
  2. 无法远程连接

    • 确认防火墙(ufw)放行了5432端口:
      sudo ufw allow 5432/tcp
      
  3. 忘记密码

    • 重新切换到 postgres 用户,通过 ALTER USER 修改密码。

通过以上步骤,你可以成功安装、登录并配置PostgreSQL账号密码。根据实际需求调整用户权限和访问控制。

posted @ 2025-09-09 22:01  蓝迷梦  阅读(119)  评论(0)    收藏  举报