温馨提示×

Debian PostgreSQL连接怎么管理

小樊
56
2025-09-07 11:12:44
栏目: 云计算

一、基础连接管理

  1. 服务状态管理

    • 检查服务是否运行:sudo systemctl status postgresql
    • 启动/重启服务:sudo systemctl start/restart postgresql
  2. 配置远程连接

    • 修改 postgresql.conf:设置 listen_addresses = '*' 以允许所有IP连接。
    • 修改 pg_hba.conf:添加 host all all 0.0.0.0/0 md5 允许远程认证(支持密码加密)。
    • 重启服务生效:sudo systemctl restart postgresql
  3. 防火墙设置

    • 若使用UFW,开放默认端口5432:sudo ufw allow 5432/tcp

二、连接工具与方式

  1. 命令行工具(psql)

    • 连接数据库:psql -h <主机> -p 5432 -U <用户名> -d <数据库名>
    • 退出:输入 \q
  2. 图形化工具(如pgAdmin)

    • 在pgAdmin中添加服务器连接,填写主机、端口、用户名、密码即可。
  3. 编程语言连接(以Python为例)

    • 安装驱动:pip install psycopg2
    • 示例代码:
      import psycopg2 conn = psycopg2.connect( host="localhost", port=5432, user="username", password="password", dbname="dbname" ) cur = conn.cursor() cur.execute("SELECT * FROM table_name") print(cur.fetchall()) conn.close() 

三、连接池管理(提升性能)

  • 安装PgBouncersudo apt install pgbouncer
  • 配置连接池:编辑 /etc/pgbouncer/pgbouncer.ini,设置监听端口、最大连接数等参数,如:
    [pgbouncer] listen_port = 6432 max_client_conn = 100 pool_mode = transaction ```。 
  • 重启服务sudo systemctl restart pgbouncer

四、监控与维护

  • 查看连接状态
    • 使用 pg_stat_activity 视图:SELECT * FROM pg_stat_activity;
    • 通过 pgbouncer 管理界面查看连接池状态。
  • 定期维护
    • 执行 VACUUMANALYZE 清理数据并优化查询计划。
    • 监控日志文件 /var/log/postgresql/postgresql-{version}-main.log,排查异常。

五、安全优化

  • 限制IP访问:在 pg_hba.conf 中指定允许的IP段,避免开放所有IP。
  • 使用SSL加密:在 postgresql.conf 中启用SSL并配置证书。

0