温馨提示×

Debian如何管理PostgreSQL数据库

小樊
57
2025-08-06 04:38:30
栏目: 云计算

Debian管理PostgreSQL数据库主要通过命令行工具和配置文件操作,核心步骤如下:

一、安装PostgreSQL

  1. 更新系统并添加官方仓库(可选):
    sudo apt update  
    sudo apt install -y software-properties-common  
    sudo add-apt-repository 'deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main'  
    wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -  
    sudo apt update  
    
  2. 安装PostgreSQL及扩展包:
    sudo apt install -y postgresql postgresql-contrib  # 安装最新版  
    # 或指定版本(如PostgreSQL 15):  
    # sudo apt install -y postgresql-15 postgresql-contrib-15  
    
  3. 启动服务并设置开机自启:
    sudo systemctl start postgresql  
    sudo systemctl enable postgresql  
    

二、基础数据库管理

  1. 访问数据库
    切换到postgres超级用户,进入psql命令行:

    sudo -u postgres psql  
    

    或直接以指定用户连接:

    psql -U your_user -d your_database  
    
  2. 创建数据库和用户

    -- 创建数据库  
    CREATE DATABASE mydb;  
    -- 创建用户并授权  
    CREATE USER myuser WITH PASSWORD 'mypassword';  
    GRANT ALL PRIVILEGES ON DATABASE mydb TO myuser;  
    \q  # 退出  
    

三、配置管理

  1. 修改配置文件

    • 监听地址:编辑/etc/postgresql/<版本>/main/postgresql.conf,设置listen_addresses = '*'以允许远程连接。
    • 访问控制:编辑/etc/postgresql/<版本>/main/pg_hba.conf,添加规则(如允许特定IP访问):
      host    all             all             0.0.0.0/0               scram-sha-256  
      
      然后重启服务:
      sudo systemctl restart postgresql  
      
  2. 防火墙设置
    若需远程访问,开放5432端口(默认):

    sudo ufw allow 5432/tcp  
    sudo ufw reload  
    

四、备份与恢复

  1. 备份数据库
    pg_dump -U your_user -d your_database > backup.sql  
    
  2. 恢复数据库
    psql -U your_user -d your_database < backup.sql  
    

五、监控与维护

  • 查看服务状态
    sudo systemctl status postgresql  
    
  • 查看实时连接
    pg_isready -h localhost -p 5432 -U your_user  
    
  • 查看日志
    sudo tail -f /var/log/postgresql/postgresql-<版本>-main.log  
    

六、常用命令总结

操作 命令
进入数据库 sudo -u postgres psqlpsql -U user -d db
创建数据库 CREATE DATABASE dbname;
删除数据库 DROP DATABASE dbname;
备份数据库 pg_dump -U user -d dbname > backup.sql
恢复数据库 psql -U user -d dbname < backup.sql
重启服务 sudo systemctl restart postgresql

以上操作基于Debian默认的postgresql包管理,如需更高级功能(如集群、复制),可参考PostgreSQL官方文档

0