在CentOS上配置PostgreSQL的步骤如下:
-
更新系统包: 首先,确保你的系统包是最新的。
sudo yum update -y
-
安装PostgreSQL: 使用yum来安装PostgreSQL服务器和客户端工具。
sudo yum install -y postgresql-server postgresql-contrib
-
初始化数据库: 安装完成后,初始化数据库。
sudo /usr/pgsql-
/bin/postgresql- -setup initdb -
启动PostgreSQL服务: 启动PostgreSQL服务并设置为开机自启动。
sudo systemctl start postgresql sudo systemctl enable postgresql
-
配置PostgreSQL: 编辑PostgreSQL的主要配置文件
postgresql.conf
和身份验证文件pg_hba.conf
。-
编辑
postgresql.conf
文件:sudo vi /etc/postgresql/
/main/postgresql.conf 修改以下参数(根据你的需求进行调整):
listen_addresses = '*' # 允许所有IP连接 port = 5432 # 设置监听端口 max_connections = 100 # 设置最大连接数 shared_buffers = 256MB # 设置共享缓冲区大小 work_mem = 64MB # 设置工作内存大小 maintenance_work_mem = 256MB # 设置维护工作内存大小 effective_cache_size = 768MB # 设置有效缓存大小 checkpoint_segments = 8 # 设置检查点段数 checkpoint_completion_target = 0.9 # 设置检查点完成目标
-
编辑
pg_hba.conf
文件:sudo vi /etc/postgresql/
/main/pg_hba.conf 在文件末尾添加以下行以允许来自所有IP的连接:
host all all 0.0.0.0/0 md5
-
-
重新加载配置文件: 重新加载PostgreSQL配置以应用更改。
sudo systemctl reload postgresql
-
创建超级用户和管理员: 登录到PostgreSQL并创建一个超级用户和管理员。
sudo -u postgres psql CREATE ROLE admin WITH LOGIN PASSWORD 'admin_password'; ALTER ROLE admin SET client_encoding TO 'utf8'; ALTER ROLE admin SET default_transaction_isolation TO 'read committed'; ALTER ROLE admin SET timezone TO 'UTC'; GRANT ALL PRIVILEGES ON DATABASE postgres TO admin; \q
-
创建数据库: 使用超级用户登录并创建一个新的数据库。
sudo -u postgres psql CREATE DATABASE mydatabase; \q
-
配置防火墙: 确保防火墙允许PostgreSQL端口(默认是5432)。
sudo firewall-cmd --permanent --add-service=postgresql sudo firewall-cmd --reload
-
测试连接: 使用
psql
客户端或其他数据库客户端工具来测试连接。psql -h localhost -U admin -d mydatabase
输入密码后,如果成功连接,你将看到PostgreSQL的命令提示符。