在腾讯云服务器(CVM)上安装 PostgreSQL 是一个常见且标准的操作。以下是详细的步骤指南,适用于大多数 Linux 发行版(如 Ubuntu、CentOS/Alibaba Cloud Linux、Debian等)。
✅ 一、前提条件
- 你已登录腾讯云控制台,创建并启动了一台 Linux 云服务器。
- 拥有
root权限或通过sudo提权。 - 服务器能访问互联网(用于下载软件包)。
- 防火墙已开放 PostgreSQL 默认端口 5432(后续会说明如何配置安全组)。
✅ 二、安装 PostgreSQL
🐧 方式一:Ubuntu / Debian 系统
# 更新软件包索引
sudo apt update
# 安装 PostgreSQL
sudo apt install postgresql postgresql-contrib -y
# 启动并设置开机自启
sudo systemctl start postgresql
sudo systemctl enable postgresql
# 检查服务状态
sudo systemctl status postgresql
PostgreSQL 在 Ubuntu/Debian 中会自动创建一个名为
postgres的系统用户和数据库超级用户。
🐧 方式二:CentOS / RHEL / Alibaba Cloud Linux 系统
# 安装 EPEL 仓库(如果尚未安装)
sudo yum install epel-release -y
# 安装 PostgreSQL
sudo yum install postgresql-server postgresql-contrib -y
# 初始化数据库(首次安装需要)
sudo postgresql-setup --initdb
# 启动并设置开机自启
sudo systemctl start postgresql
sudo systemctl enable postgresql
# 检查服务状态
sudo systemctl status postgresql
✅ 三、配置远程访问(可选但推荐)
默认情况下,PostgreSQL 只允许本地连接。如需从外部(如你的电脑)连接,需修改以下两个文件:
1. 编辑 postgresql.conf
sudo nano /etc/postgresql/14/main/postgresql.conf # Ubuntu/Debian
# 或
sudo nano /var/lib/pgsql/data/postgresql.conf # CentOS/RHEL
找到并修改:
listen_addresses = '*'
2. 编辑 pg_hba.conf
sudo nano /etc/postgresql/14/main/pg_hba.conf # Ubuntu/Debian
# 或
sudo nano /var/lib/pgsql/data/pg_hba.conf # CentOS/RHEL
添加或修改一行,允许特定 IP 或所有 IP 连接:
# TYPE DATABASE USER ADDRESS METHOD
host all all 0.0.0.0/0 md5
⚠️ 生产环境建议限制 IP 范围,例如只允许你的公网 IP:
host all all YOUR_PUBLIC_IP/32 md5
3. 重启 PostgreSQL 服务
sudo systemctl restart postgresql
✅ 四、设置 PostgreSQL 用户密码
默认用户是 postgres,需设置密码:
sudo -u postgres psql
进入 PostgreSQL 命令行后执行:
ALTER USER postgres WITH PASSWORD 'your_strong_password';
q
✅ 五、配置腾讯云安全组
- 登录 腾讯云控制台
- 进入 云服务器 > 实例列表
- 点击你的实例 → 安全组
- 添加入站规则:
- 协议:TCP
- 端口:5432
- 源:
0.0.0.0/0(或指定你的 IP) - 策略:允许
✅ 六、测试连接
本地测试:
sudo -u postgres psql -U postgres -d postgres
远程测试(从你的电脑):
psql -h <你的服务器公网IP> -U postgres -d postgres -p 5432
输入刚才设置的密码即可连接。
✅ 七、(可选)安装 pgAdmin 或 DBeaver 管理工具
- pgAdmin:Web 界面管理工具,可在服务器上部署或通过浏览器访问。
- DBeaver:跨平台桌面客户端,推荐用于本地开发。
✅ 八、常见问题排查
| 问题 | 解决方案 |
|---|---|
| 无法远程连接 | 检查安全组是否开放 5432 端口;检查 pg_hba.conf 和 postgresql.conf |
| 密码错误 | 确认是否通过 ALTER USER 设置了密码;尝试用 sudo -u postgres psql 无密码登录 |
| 服务未启动 | sudo systemctl status postgresql 查看日志;journalctl -u postgresql 查看详细日志 |
| 权限不足 | 确保使用正确用户(如 postgres)执行命令 |
✅ 九、最佳实践建议
- 不要使用 root 运行 PostgreSQL。
- 定期备份数据库:使用
pg_dump或腾讯云云数据库备份功能。 - 启用 SSL 加密连接(生产环境必备)。
- 限制监听地址:仅监听内网 IP 而非
*。 - 使用强密码,并启用角色权限控制。
如需自动化安装,可使用 Ansible、Shell 脚本或 Docker 部署。需要我提供 Docker 安装方式吗?
CLOUD技术博