PostgreSQL 在Linux系统启动时启动PostgreSQL服务器

PostgreSQL 在Linux系统启动时启动PostgreSQL服务器

在本文中,我们将介绍如何配置Linux系统以在系统启动时自动启动PostgreSQL服务器。启动时自动启动PostgreSQL服务器可以确保在系统重启后,数据库服务能够立即启动,提高系统的可用性和稳定性。

阅读更多:PostgreSQL 教程

检查PostgreSQL安装

首先,我们需要检查PostgreSQL是否已经正确地安装在我们的Linux系统上。我们可以通过运行以下命令来检查PostgreSQL的安装情况:

$ postgres --version
SQL

如果PostgreSQL已经正确地安装在系统上,该命令将显示PostgreSQL的版本信息。如果命令返回”command not found”或类似的错误信息,说明PostgreSQL尚未安装在系统上,我们需要先进行安装。

配置PostgreSQL自动启动

在Linux系统中,有多种方法可以配置PostgreSQL在系统启动时自动启动。我们将介绍两种常用的方法:使用systemd和使用SysV init脚本。

使用Systemd配置自动启动

Systemd是Linux系统中一个现代的系统初始化和管理工具。许多主流的Linux发行版都采用了systemd作为其默认的系统初始化程序。

在使用systemd的系统上,我们可以通过创建一个unit文件来配置PostgreSQL的自动启动。unit文件是systemd用于管理服务的配置文件。

首先,我们需要在/etc/systemd/system目录下创建一个新的unit文件。可以选择一个易于识别的名称,比如”postgresql.service”。在创建unit文件时,我们需要根据系统上安装的PostgreSQL版本进行相应的修改。

以下是一个示例的postgresql.service文件的内容:

[Unit]
Description=PostgreSQL database server
After=network.target

[Service]
Type=forking
ExecStart=/usr/bin/pg_ctl start -D /var/lib/postgresql/9.6/main -s -o '-p 5432'
ExecStop=/usr/bin/pg_ctl stop -D /var/lib/postgresql/9.6/main -s -m fast
ExecReload=/usr/bin/pg_ctl reload -D /var/lib/postgresql/9.6/main -s

[Install]
WantedBy=multi-user.target
SQL

在以上示例中,我们需要根据实际情况修改以下内容:
– ExecStart:指定PostgreSQL服务器的启动命令,包括服务器数据目录和端口号。
– ExecStop:指定PostgreSQL服务器的停止命令,包括服务器数据目录。
– ExecReload:指定重新加载配置文件的命令,包括服务器数据目录。

创建好unit文件后,我们可以通过以下命令启用自动启动:

$ sudo systemctl enable postgresql.service
SQL

现在,每次系统启动时,PostgreSQL服务器将自动启动。

使用SysV Init脚本配置自动启动

SysV Init是一个已经存在很长时间的初始化系统,被广泛应用于各种Linux发行版中。在一些较旧的Linux系统上,仍然使用SysV Init作为初始化系统。

在使用SysV Init的系统上,我们可以通过修改/etc/init.d目录下的启动脚本来配置PostgreSQL的自动启动。和systemd的方法类似,我们需要根据实际情况修改脚本中的相关配置。

以下是一个示例的postgresql启动脚本的内容:

#!/bin/sh
### BEGIN INIT INFO
# Provides:          postgresql
# Required-Start:    remote_fssyslog
# Required-Stop:     remote_fssyslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: PostgreSQL database server
### END INIT INFO

# 请根据实际情况修改以下变量
POSTGRES_USER=postgres
POSTGRES_BIN_DIR=/usr/bin
POSTGRES_DATA_DIR=/var/lib/postgresql/9.6/main

# 脚本的实际执行内容
case "1" in
    start)
        su -POSTGRES_USER -c "POSTGRES_BIN_DIR/pg_ctl start -DPOSTGRES_DATA_DIR -s -o '-p 5432'"
        ;;
    stop)
        su - POSTGRES_USER -c "POSTGRES_BIN_DIR/pg_ctl stop -D POSTGRES_DATA_DIR -s -m fast"
        ;;
    reload)
        su -POSTGRES_USER -c "POSTGRES_BIN_DIR/pg_ctl reload -DPOSTGRES_DATA_DIR -s"
        ;;
    *)
        echo "Usage: $0 {start|stop|reload}"
        exit 1
        ;;
esac

exit 0
Bash

在以上示例中,我们需要根据实际情况修改以下内容:
– POSTGRES_USER:指定PostgreSQL服务器运行的系统用户。
– POSTGRES_BIN_DIR:指定PostgreSQL服务器可执行文件的目录。
– POSTGRES_DATA_DIR:指定PostgreSQL服务器的数据目录。

创建好脚本文件后,我们可以通过以下命令启用自动启动:

$ sudo update-rc.d postgresql defaults
SQL

现在,每次系统启动时,PostgreSQL服务器将自动启动。

测试自动启动

完成以上配置后,我们可以通过以下命令来测试PostgreSQL的自动启动功能:

$ sudo reboot
SQL

等待系统重启完成后,我们可以使用以下命令来检查PostgreSQL服务器是否已经成功启动:

$ sudo systemctl status postgresql.service
SQL

$ sudo service postgresql status
SQL

如果以上命令返回类似”active (running)”的状态信息,说明PostgreSQL服务器已经成功启动。

总结

通过本文,我们学习了如何在Linux系统上配置PostgreSQL的自动启动。我们介绍了两种常用的方法:使用systemd和使用SysV Init脚本。通过配置自动启动,我们可以确保在系统启动时,PostgreSQL服务器能够自动启动,并提高系统的可用性和稳定性。

希望本文能对你理解和配置PostgreSQL的自动启动有所帮助!

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册