当前位置: 首页 > 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` 环境变量连接数据库了。

相关文章:

  • Arduino示例代码讲解:Project 08 - Digital Hourglass 数字沙漏
  • javascript day4
  • C语言之图像文件的属性
  • Java(自用查看版)
  • Towards Transferable Targeted 3D Adversarial Attack in the Physical World--阅读笔记
  • 头歌实训之连接查询
  • 【网络编程】从零开始彻底了解网络编程(二)
  • 【2025计算机网络-面试常问】http和https区别是什么,http的内容有哪些,https用的是对称加密还是非对称加密,流程是怎么样的
  • wordpress独立站的产品详情页添加WhatsApp链接按钮
  • 深入探索 Unix 与 Linux:历史、内核及发行版
  • 02_解决Class com.sun.tools.javac.tree.JCTree
  • 【失败总结】Win10系统安装docker
  • FTP客户端实现(文件传输)
  • DreamDiffusion的mae_for_eeg.py网络架构
  • 基于maven-jar-plugin打造一款自动识别主类的maven打包插件
  • [Spring]SSM整合
  • 游戏引擎学习第238天:让 OpenGL 使用我们的屏幕坐标
  • 基于Redis实现RAG架构的技术解析与实践指南
  • idea中运行groovy程序报错
  • 【perf】perf工具的使用生成火焰图
  • 田野调查|“心青年”的日常秩序与归属之地
  • 《“四有”好老师系列丛书》发布,由顾明远总主编
  • 北京理工大学解除宫某聘用关系,该教师被指涉嫌骚扰猥亵学生
  • 山东临沂市市长张宝亮履新市委书记
  • 夜读丨“看看世界”本身就是一种意义
  • 三一重工去年净利增逾三成至59.75亿,拟分红超30亿元