CentOS上安装PostgreSQL
一、简介
PostgreSQL是一个功能强大的开源对象关系数据库系统,它支持复杂的数据类型和高级功能,在CentOS上安装PostgreSQL可以提供稳定且安全的平台来运行数据库,本文将详细介绍如何在CentOS上安装PostgreSQL,涵盖从更新系统到配置远程访问的全过程。
二、安装步骤
1. 使用SSH连接到CentOS服务器
ssh <username>@<server_IP_address>
确保您使用正确的用户名和服务器IP地址来远程连接到您的CentOS服务器。
2. 更新系统
sudo yum update y
通过更新系统软件包,确保您的服务器具有最新的安全补丁和软件包版本。
3. 排除CentOS默认的PostgreSQL软件包
在安装新的PostgreSQL之前,我们需要排除CentOS版本的PostgreSQL,以便从项目网站获取最新版本,编辑CentOS仓库配置文件:
sudo nano /etc/yum.repos.d/CentOSBase.repo
在[base]
部分底部添加以下行:
exclude=postgresql
同样在[updates]
部分底部添加相同的行:
exclude=postgresql
4. 添加PostgreSQL Yum存储库
根据CentOS的版本(7或8),添加相应的Yum存储库:
对于CentOS 7:
sudo yum install y https://download.postgresql.org/pub/repos/yum/reporpms/EL7x86_64/pgdgredhatrepolatest.noarch.rpm
对于CentOS 8:
sudo yum install y https://download.postgresql.org/pub/repos/yum/reporpms/EL8x86_64/pgdgredhatrepolatest.noarch.rpm
5. 禁用内置的PostgreSQL模块(仅适用于CentOS 8)
sudo dnf qy module disable postgresql
6. 安装PostgreSQL
对于CentOS 8,执行以下命令安装PostgreSQL 13:
sudo yum install y postgresql13server
对于CentOS 7,执行以下命令安装PostgreSQL 12:
sudo yum install y postgresql12server
7. 初始化数据库
sudo /usr/pgsql13/bin/postgresql13setup initdb
或者对于PostgreSQL 12:
sudo /usr/pgsql12/bin/postgresql12setup initdb
8. 启动并设置PostgreSQL服务开机自启
sudo systemctl start postgresql13 sudo systemctl enable postgresql13
或者对于PostgreSQL 12:
sudo systemctl start postgresql12 sudo systemctl enable postgresql12
9. 设置默认PostgreSQL用户的密码
切换到postgres
用户:
sudo su postgres
然后输入以下命令设置密码:
psql ALTER USER postgres PASSWORD 'your_secure_password'; \q exit
10. 创建新PostgreSQL用户和数据库(可选)
重新切换到postgres
用户:
sudo su postgres
进入PostgreSQL提示符:
psql
创建新用户和新数据库:
CREATE USER newuser WITH PASSWORD 'user_password'; CREATE DATABASE newdatabase; GRANT ALL PRIVILEGES ON DATABASE newdatabase TO newuser; \q exit
11. 配置远程访问
编辑pg_hba.conf
文件:
nano /var/lib/pgsql/13/data/pg_hba.conf
添加以下内容:
host all all 0.0.0.0/0 md5
编辑postgresql.conf
文件:
nano /var/lib/pgsql/13/data/postgresql.conf
修改listen_addresses
参数:
listen_addresses = '*'
重新启动PostgreSQL服务:
sudo systemctl restart postgresql13
或者对于PostgreSQL 12:
sudo systemctl restart postgresql12
PostgreSQL在CentOS上的安装过程相对简单,但需要特别注意以下几点以确保安装顺利进行:
1、更新系统:在安装任何软件之前,确保系统是最新的,这不仅包括操作系统,还包括所有已安装的软件包,这有助于防止兼容性问题和安全漏洞,使用sudo yum update y
命令来更新CentOS系统。
2、排除默认的PostgreSQL软件包:为了避免与系统中可能已经存在的PostgreSQL软件包发生冲突,建议先排除它们,可以通过编辑/etc/yum.repos.d/CentOSBase.repo
文件来实现这一点,在[base]
和[updates]
部分中添加exclude=postgresql
。
3、添加官方Yum存储库:为了确保获得最新版本的PostgreSQL及其依赖项,应添加官方的Yum存储库,对于不同的CentOS版本,存储库链接可能会有所不同,CentOS 7使用https://download.postgresql.org/pub/repos/yum/reporpms/EL7x86_64/pgdgredhatrepolatest.noarch.rpm
。
4、禁用内置的PostgreSQL模块(仅限CentOS 8):CentOS 8引入了模块系统,其中包含一个内置的PostgreSQL模块,为了避免冲突,建议禁用该模块,可以使用sudo dnf qy module disaBLe postgresql
命令来完成此操作。
5、安装特定版本的PostgreSQL:根据需求选择合适的PostgreSQL版本进行安装,对于CentOS 8,可以安装PostgreSQL 13;对于CentOS 7,则安装PostgreSQL 12,使用sudo yum install y postgresql13server
或sudo yum install y postgresql12server
命令进行安装。
6、初始化数据库:安装完成后,需要初始化数据库集群,这是创建必要的数据库文件和目录结构的过程,使用sudo /usr/pgsql13/bin/postgresql13setup initdb
命令进行初始化,请确保使用正确的版本号替换命令中的路径。
7、启动并设置服务开机自启:为了使PostgreSQL服务随系统启动而自动启动,需要将其设置为开机自启,使用sudo systemctl enable postgresql13
命令来设置,使用sudo systemctl start postgresql13
命令来启动服务,请根据实际安装的版本调整服务名称。
8、设置默认用户的密码:为了增强安全性,建议为默认的postgres
用户设置强密码,首先切换到postgres
用户,然后使用psql
命令行工具连接到PostgreSQL实例并执行ALTER USER postgres PASSWORD 'your_secure_password';
命令来更改密码,最后退出psql
会话。
9、创建新用户和数据库(可选):根据需要,可以创建新的PostgreSQL用户和数据库,首先切换到postgres
用户,然后使用psql
命令行工具创建新用户和新数据库,并授予适当的权限,这样可以更好地管理不同应用的数据隔离性和安全性。
10、配置远程访问:默认情况下,PostgreSQL只允许本地主机连接,如果需要从远程主机访问数据库,则需要修改配置文件以允许远程连接,编辑pg_hba.conf
文件,添加一行来允许所有IP地址访问所有数据库,并使用md5认证方法,还需要编辑postgresql.conf
文件,将listen_addresses
设置为'*'
以监听所有网络接口,完成配置后,重启PostgreSQL服务使更改生效。