当前位置: 首页 > news >正文

在 Ubuntu 系统上安装 PostgreSQL

在 Ubuntu 系统上安装 PostgreSQL 的完整指南:

一、安装 PostgreSQL(最新版本)

1. 更新软件包列表:
   ```bash
   sudo apt update
   ```

2. 安装 PostgreSQL 和客户端工具:
   ```bash
   sudo apt install postgresql postgresql-client
   ```

3. 验证安装:
   ```bash
   psql --version
   # 应显示类似: psql (PostgreSQL) 15.3
   ```

二、基本配置

1. 启动服务:
   ```bash
   sudo systemctl start postgresql
   ```

2. 设置开机自启:
   ```bash
   sudo systemctl enable postgresql
   ```

3. 检查运行状态:
   ```bash
   sudo systemctl status postgresql
   ```

三、创建数据库和用户

1. 切换到 postgres 用户:
   ```bash
   sudo -i -u postgres
   ```

2. 进入 PostgreSQL 交互终端:
   ```bash
   psql
   ```

3. 创建新用户和数据库:
   ```sql
   CREATE USER youruser WITH PASSWORD 'yourpassword';
   CREATE DATABASE yourdb WITH OWNER youruser;
   \q  -- 退出
   ```

四、远程访问配置(可选)

1. 修改配置文件:
   ```bash
   sudo nano /etc/postgresql/15/main/postgresql.conf
   ```
   找到并修改:
   ```conf
   listen_addresses = '*'
   ```

2. 配置客户端认证:
   ```bash
   sudo nano /etc/postgresql/15/main/pg_hba.conf
   ```
   添加:
   ```conf
   host    all             all             0.0.0.0/0               md5
   ```

3. 重启服务:
   ```bash
   sudo systemctl restart postgresql
   ```

五、防火墙设置(如果启用)

```bash
sudo ufw allow 5432/tcp
sudo ufw reload
```

六、常用命令

| 功能 | 命令 |
|------|------|
| 启动服务 | `sudo systemctl start postgresql` |
| 停止服务 | `sudo systemctl stop postgresql` |
| 重启服务 | `sudo systemctl restart postgresql` |
| 查看版本 | `psql -V` |
| 连接数据库 | `psql -U username -d dbname -h 127.0.0.1` |

七、卸载 PostgreSQL

1. 停止服务:
   ```bash
   sudo systemctl stop postgresql
   ```

2. 完全卸载:
   ```bash
   sudo apt purge postgresql*
   sudo rm -rf /etc/postgresql/
   sudo rm -rf /var/lib/postgresql/
   ```

八、连接字符串格式

在您的 Next.js 项目中使用的连接字符串格式:
```
postgres://youruser:yourpassword@localhost:5432/yourdb
```

注意事项
1. 默认情况下 PostgreSQL 只允许本地连接
2. 生产环境请务必使用强密码
3. 建议定期备份重要数据

安装完成后,您就可以在 Next.js 项目中使用 `POSTGRES_URL` 环境变量连接数据库了。

http://www.xdnf.cn/news/50779.html

相关文章:

  • INFERENCE SCALING FOR LONG-CONTEXT RETRIEVAL AUGMENTED GENERATION
  • MIT6.S081-lab4
  • 【LeetCode】算法详解#5 ---轮转数组
  • Spring中Bean的作用域和生命周期
  • PICO4 Ultra MR开发 空间网格扫描 模型导出及预览
  • 【外研在线-注册/登录安全分析报告】
  • 聚宽策略----国九条后中小板微盘小改,年化135.40%
  • 【leetcode刷题日记】lc.152-乘积最大子数组
  • C++(23)—模板初阶
  • 计算机组成原理笔记(十七)——4.2定点加减运算
  • 再探模板与泛型编程
  • RocketMQ实现基于可靠消息的最终一致性
  • Java处理字符串用啥?String、StringBuilder、StringBuffer
  • Spring Boot自动装配原理(源码详细剖析!)
  • 计算机是如何看待数据的?
  • Java之封装(学习笔记)
  • 算法分析传输加密数据格式密文存储代码混淆逆向保护
  • 4.19-4.20学习总结 网络编程+反射+动态代理
  • AI大模型发展现状与MCP协议诞生的技术演进
  • music21:伍佰 《挪威的森林》MIDI 音乐分析
  • Centos9 离线安装 MYSQL8
  • 【python编程从入门到到实践】第四章 操作列表
  • 进程控制(linux+C/C++)
  • day47——平方数之和(LeetCode-633)
  • javase 学习
  • SQL语句执行顺序
  • QML Universal样式
  • 在 Debian 12 中恢复被删除的 smb.conf 配置文件
  • Python基础总结(八)之循环语句
  • 【RabbitMQ | 第2篇】RabbitMQ 控制台实现消息路由 + 数据隔离