首页主机资讯PostgreSQL在Linux上怎么配置

PostgreSQL在Linux上怎么配置

时间2025-10-29 08:21:03发布访客分类主机资讯浏览427
导读:PostgreSQL在Linux上的配置指南 PostgreSQL是开源关系型数据库,Linux是其主流部署环境。以下从基础配置、安全配置、性能优化三方面展开,覆盖从安装后到上线的全流程。 一、基础配置(安装后必做) 1. 启动服务与开机自...

PostgreSQL在Linux上的配置指南
PostgreSQL是开源关系型数据库,Linux是其主流部署环境。以下从基础配置安全配置性能优化三方面展开,覆盖从安装后到上线的全流程。

一、基础配置(安装后必做)

1. 启动服务与开机自启

安装完成后,首先启动PostgreSQL服务并设置为开机自动启动,确保服务长期稳定运行:

# 启动服务
sudo systemctl start postgresql  # Ubuntu/Debian通用
sudo systemctl start postgresql-15  # CentOS/RHEL(版本号替换为实际安装版本)

# 设置开机自启
sudo systemctl enable postgresql
sudo systemctl enable postgresql-15

2. 切换至postgres用户

PostgreSQL安装后会创建系统用户postgres,用于管理数据库。通过以下命令切换至该用户:

sudo -i -u postgres  # 切换至postgres用户(无需密码)

3. 访问PostgreSQL控制台

切换至postgres用户后,使用psql命令进入交互式控制台:

psql

控制台提示符为postgres=#,表示已成功登录。输入\q可退出控制台。

4. 创建数据库与用户

默认情况下,PostgreSQL会创建名为postgres的数据库和同名用户。若需创建自定义数据库和用户,可通过以下命令实现:

# 创建数据库(例如名为"mydb")
CREATE DATABASE mydb;
    

# 创建用户并设置密码(例如用户名"myuser",密码"mypassword")
CREATE USER myuser WITH ENCRYPTED PASSWORD 'mypassword';
    

# 授予用户对数据库的所有权限
GRANT ALL PRIVILEGES ON DATABASE mydb TO myuser;
    

输入\q退出控制台。

二、安全配置(远程访问与认证)

1. 修改postgresql.conf(允许远程连接)

默认情况下,PostgreSQL仅允许本地连接(localhost)。需修改postgresql.conf文件,开启远程访问:

# 找到配置文件路径(不同发行版路径可能不同)
# Ubuntu/Debian: /etc/postgresql/<
    version>
    /main/postgresql.conf
# CentOS/RHEL: /var/lib/pgsql/<
    version>
    /data/postgresql.conf

sudo nano /etc/postgresql/15/main/postgresql.conf  # 示例路径

找到listen_addresses参数,将其修改为:

listen_addresses = '*'  # 允许所有IP连接(生产环境建议限制为特定IP段)

保存并退出(Ctrl+OEnterCtrl+X)。

2. 修改pg_hba.conf(配置客户端认证)

pg_hba.conf文件用于定义客户端认证规则。需添加允许远程连接的规则:

sudo nano /etc/postgresql/15/main/pg_hba.conf  # 示例路径

在文件末尾添加以下内容(允许所有IP通过密码认证连接):

# TYPE  DATABASE        USER            ADDRESS                 METHOD
host    all             all             0.0.0.0/0               md5  # MD5加密密码认证
# 若需更安全的方式,可将md5替换为scram-sha-256(PostgreSQL 10+支持)

保存并退出。

3. 重启服务使配置生效

修改配置文件后,需重启PostgreSQL服务:

sudo systemctl restart postgresql  # Ubuntu/Debian
sudo systemctl restart postgresql-15  # CentOS/RHEL

4. 配置防火墙(允许端口访问)

PostgreSQL默认使用5432端口。需确保防火墙开放该端口,允许外部连接:

# Ubuntu/Debian(ufw防火墙)
sudo ufw allow 5432/tcp

# CentOS/RHEL(firewalld防火墙)
sudo firewall-cmd --permanent --add-port=5432/tcp
sudo firewall-cmd --reload

三、性能优化(可选但重要)

1. 调整shared_buffers(共享缓冲区)

shared_buffers参数决定了PostgreSQL用于缓存数据的内存大小。默认值较小(通常为128MB),可根据服务器内存调整:

sudo nano /etc/postgresql/15/main/postgresql.conf

找到shared_buffers参数,修改为服务器内存的25%-40%(例如16GB内存可设置为4GB):

shared_buffers = 4GB

保存并重启服务。

2. 调整work_mem(工作内存)

work_mem参数用于排序、哈希表等操作的临时内存。默认值较小(通常为4MB),可根据并发查询量调整:

work_mem = 16MB  # 建议设置为16MB-64MB(根据实际情况调整)

保存并重启服务。

3. 调整max_connections(最大连接数)

max_connections参数决定了PostgreSQL允许的最大并发连接数。默认值为100,可根据应用需求调整:

max_connections = 200  # 建议设置为100-500(需结合服务器资源)

注意:增加max_connections会消耗更多内存,需配合shared_bufferswork_mem的调整。

四、验证配置

1. 远程连接测试

使用远程客户端(如另一台Linux机器)连接PostgreSQL,验证远程访问是否成功:

psql -h <
    服务器IP>
     -U myuser -d mydb

输入密码后,若成功进入psql控制台,则表示远程访问配置成功。

2. 检查服务状态

确保PostgreSQL服务运行正常:

sudo systemctl status postgresql  # Ubuntu/Debian
sudo systemctl status postgresql-15  # CentOS/RHEL

若状态显示为active (running),则表示服务正常。

通过以上步骤,即可完成PostgreSQL在Linux上的基础配置、安全设置及性能优化。根据实际业务需求,可进一步调整其他参数(如maintenance_work_memeffective_cache_size等)。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: PostgreSQL在Linux上怎么配置
本文地址: https://pptw.com/jishu/737411.html
如何在Linux上升级PostgreSQL PostgreSQL数据备份在Linux怎么做

游客 回复需填写必要信息