当前位置:首页 > 虚拟主机 > 正文

pgsql数据库搭建详细步骤是怎样的?

PostgreSQL(简称pgsql)是一款功能强大的开源对象关系型数据库系统,以其稳定性、丰富的功能以及良好的扩展性受到广泛欢迎,搭建pgsql数据库需要经过环境准备、安装配置、初始化及安全设置等步骤,以下是详细流程:

首先进行环境准备,确保操作系统满足pgsql的版本要求,例如在Linux系统中推荐使用CentOS 7+或Ubuntu 18.04+,检查系统是否已安装依赖包,如readline、zlib、openssl等,可通过yum install y readlinedevel zlibdevel openssldevel(CentOS)或aptget install y libreadlinedev zlib1gdev libssldev(Ubuntu)安装,建议创建独立的pgsql用户和用户组,通过groupadd postgres和useradd r g postgres postgres命令实现,确保数据库运行权限隔离。

接下来是安装pgsql,可通过源码编译或包管理器安装,以CentOS为例,使用yum install y https://download.postgresql.org/pub/repos/yum/reporpms/EL7x86_64/pgdgredhatrepolatest.noarch.rpm添加官方yum源,然后执行yum install y postgresql14server postgresql14contrib安装pgsql 14版本,安装完成后,初始化数据库集群,命令为/usr/pgsql14/bin/postgresql14setup initdb,该命令会在/var/lib/pgsql/14/data目录下生成数据库配置文件。

配置pgsql是关键步骤,编辑主配置文件/var/lib/pgsql/14/data/postgresql.conf,修改核心参数:listen_addresses设置为(允许所有IP连接,需结合防火墙设置)或'localhost'(仅本地连接);port默认为5432,可根据需求调整;max_connections设置最大连接数,默认为100,高并发场景可适当增加,然后编辑客户端认证文件pg_hba.conf,添加host all all 0.0.0.0/0 md5允许远程密码认证,或host all all 127.0.0.1/32 trust允许本地信任连接,配置完成后,启动pgsql服务并设置开机自启:systemctl start postgresql14和systemctl enable postgresql14。

安全设置不可忽视,默认情况下,pgsql超级用户为postgres,需为其设置强密码:执行su postgres切换用户,然后运行psql c "ALTER USER postgres PASSWORD 'new_password';",为避免远程直接访问超级用户,建议创建业务专用数据库和普通用户,createdb mydatabase创建数据库,CREATE USER myuser WITH PASSWORD 'mypassword';创建用户,再通过GRANT ALL PRIVILEGES ON DATABASE mydatabase TO myuser;授权。

最后进行验证,通过psql U postgres d mydatabase h localhost命令连接数据库,若能成功执行SQL语句(如l查看列表),则搭建完成,防火墙需开放5432端口,CentOS中使用firewallcmd permanent addport=5432/tcp和firewallcmd reload实现。

相关问答FAQs

  1. 问:如何修改pgsql的默认监听端口?

    答:编辑postgresql.conf文件,找到port = 5432行,修改为目标端口(如port = 5433),保存后重启pgsql服务(systemctl restart postgresql14),同时需检查防火墙是否开放新端口,并确保端口未被其他程序占用。

  2. 问:pgsql忘记超级用户密码如何重置?

    答:首先停止pgsql服务(systemctl stop postgresql14),然后以root身份编辑pg_hba.conf文件,将本地连接认证方式改为trust(如host all all 127.0.0.1/32 trust),重启服务后执行su postgres和psql,通过ALTER USER postgres PASSWORD 'new_password';重置密码,最后将pg_hba.conf改回原认证方式并重启服务即可。

0