文章目录
一、先决条件检查
根据官方文档内容,我门将进行一些检查,以便能够正确安装
make --version
二、源码安装
1、获取源代码
官网链接
选择需要的版本,这里我使用14.10
下载包,并上传到服务器上
2、编译安装
1.运行 configure
tar xvf postgresql-14.10.tar
cd postgresql-14.10/
./configure --prefix=/usr/local/pgsql14.10 --with-perl --with-python
可以看到缺少readline包
yum -y install -y readline-devel
再次执行先决检查,通过
2.运行make
编译安装的“第二板斧”是make命令,该命令比较简单,直接运行即可
make
sudo make install
前面我们看到–prefix设置的路径为“/usr/local/pgsql14.10”,如果不进行设置,默认的路径将是“/usr/local”,为什么要在此路径上加上PostgreSQL的版本号呢?这是为了方便升级。make install命令运行完成后,还要进入“/usr/local”目录,为“/usr/local/pgsql16.2”建立一个/usr/local/pgsql链接:
cd /usr/local
sudo ln -sf /usr/local/pgsql14.10 /usr/local/pgsql
3、PostgreSQL的配置
配置环境变量并设置共享库
export PATH=/usr/local/pgsql/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/pgsql/lib
如果想让以上配置对所有的用户生效,可以把以上内容添加到/etc/profile文件中
vim /etc/profile
source /etc/profile
4、安装contrib目录下的工具
contrib下有一些工具比较实用,一般用户都会安装这些工具,其安装的方法也与Linux下的编译过程相同,安装命令如下:
cd /root/postgresql-14.10/contrib
make
sudo make install
三、初始化数据库
1、创建数据库管理员
# 使用useradd命令创建用户(pg默认是postgres,但若还有其他类型数据库,个人为了方便管理统一用mydba)
sudo useradd mydba
#设置密码
sudo passwd mydba
# 系统将提示你输入密码,输入后按Enter键确认,再次输入以确认密码
# 若要赋予该用户sudo权限(可选,取决于你希望mydba用户是否具有管理员权限)
sudo usermod -aG wheel mydba # 对于使用wheel组的系统
# 确认用户和组信息已生效
id mydba
2、创建数据库实例
添加并修改目录权限
mkdir -p /home/mydba/pgdata
chown -R mydba:mydba /home/mydba/
chmod -R 700 /home/mydba/
# 将目录权限设置为700,这意味着仅属主(这里是postgres用户)有权读取、写入和执行目录内的内容,其他用户无权访问,这是出于数据库安全性的考虑。
首先设定数据库的数据目录的环境变量:
echo 'export PGDATA=/home/mydba/pgdata' >> /etc/profile
source /etc/profile
然后执行下面的命令创建数据库簇:
su mydba
initdb
至此,数据库实例的创建就完成了。
3、启动和停止数据库
启动数据库的命令如下:
pg_ctl start -D $PGDATA
其中,环境变量“PGDATA”指向具体的PostgreSQL数据库的数据目
录,示例如下:
pg_ctl start -D /home/mydba/pgdata
停止数据库的命令如下:
pg_ctl stop -D $PGDATA [-m SHUTDOWN-MODE]
较常用的关闭数据库的方法是fast模式
4、设置数据库密码
PostgreSQL的默认用户名通常是postgres(我这里用的是osdba),但并没有默认密码。在首次安装PostgreSQL时,系统不会自动生成一个默认密码,而是需要你在安装后手动设置。
在很多Linux发行版中,安装完成后,作为超级用户(如root)可以通过以下步骤为mydba用户设置密码:
sudo -u mydba psql -d postgres
# 进入psql命令行后,可以执行以下命令设置密码
ALTER USER mydba WITH PASSWORD '123';
\q
四、PostgreSQL的简单配置
PostgreSQL数据库的配置主要是通过修改数据目录下的 postgresql.conf和pg_hba.conf 文件来实现的。
1、pg_hba.conf 的配置
默认创建的数据库无法接受远程连接,因为默认情况下pg_hba.conf中没有相应的配置项。我们可以在pg_hba.conf文件中加入以下命令行:
vim pg_hba.conf
#该命令允许任何用户远程连接本数据库,连接时需要提供密码。
host all all 0/0 md5
pg_hba.conf文件是一个黑白名单的访问控制文件,可以控制允许哪些IP地址的机器访问数据库。
2、postgresql.conf 的配置
修改监听的IP和端口
在数据目录下编辑 postgresql.conf 文件,找到如下内容:
#listen_addresses = 'localhost' # what IP address(es) to listen on;
#port = 5432 # (change requires restart)
其中,参数“listen_addresses”表示监听的IP地址,默认是在“localhost”处监听,也就是在IP地址“127.0.0.1”上监听,这会造成远程主机无法登录该数据库,如果想从其他机器上登录该数据库,需要把监听地址改成实际网络的地址,一种简单的方法是把地址改成“*”,表示在本地的所有地址上监听,命令如下:
listen_addresses = '*' # what IP address(es) to listen on;
#port = 5432 # (change requires restart)
参数“port”表示监听的数据库端口,默认为“5432”,可以使用默认设置。如果一台机器上安装了多个数据库实例(如安装了多个不同版本的PostgreSQL),可以设置为不同的端口。
对于这两个参数的修改,需要重启数据库才能生效。
3、数据库日志相关参数
还是在 postgresql.conf ,下面来看看与日志相关的几个参数:
日志的收集一般是需要打开的,所以需要进行如下设置:
logging_collector = on
注意,在新版本的数据库中,以上参数默认已打开,如PostgreSQL10版本。
日志的目录一般使用默认值即可(旧版是 pg_log):
log_directory = 'log' # directory where log files are written,
# can be absolute or relative to PGDATA