Fixes #5760
2.9 KiB
PostgreSQL Database Installation
This section entails the installation and configuration of a local PostgreSQL database. If you already have a PostgreSQL database service in place, skip to the next section.
!!! warning NetBox requires PostgreSQL 9.6 or higher. Please note that MySQL and other relational databases are not currently supported.
Installation
Ubuntu
Install the PostgreSQL server and client development libraries using apt
.
sudo apt update
sudo apt install -y postgresql libpq-dev
CentOS
PostgreSQL 9.6 and later are available natively on CentOS 8.2. If using an earlier CentOS release, you may need to install it from an RPM.
sudo yum install -y postgresql-server libpq-devel
sudo postgresql-setup --initdb
CentOS configures ident host-based authentication for PostgreSQL by default. Because NetBox will need to authenticate using a username and password, modify /var/lib/pgsql/data/pg_hba.conf
to support MD5 authentication by changing ident
to md5
for the lines below:
host all all 127.0.0.1/32 md5
host all all ::1/128 md5
Then, start the service and enable it to run at boot:
sudo systemctl start postgresql
sudo systemctl enable postgresql
Database Creation
At a minimum, we need to create a database for NetBox and assign it a username and password for authentication. This is done with the following commands.
!!! danger Do not use the password from the example. Choose a strong, random password to ensure secure database authentication for your NetBox installation.
$ sudo -u postgres psql
psql (12.5 (Ubuntu 12.5-0ubuntu0.20.04.1))
Type "help" for help.
postgres=# CREATE DATABASE netbox ENCODING 'UTF8' LC_COLLATE='C.UTF-8' LC_CTYPE='C.UTF-8';
CREATE DATABASE
postgres=# CREATE USER netbox WITH PASSWORD 'J5brHrAXFLQSif0K';
CREATE ROLE
postgres=# GRANT ALL PRIVILEGES ON DATABASE netbox TO netbox;
GRANT
postgres=# \q
Verify Service Status
You can verify that authentication works issuing the following command and providing the configured password. (Replace localhost
with your database server if using a remote database.)
$ psql --username netbox --password --host localhost netbox
Password for user netbox:
psql (12.5 (Ubuntu 12.5-0ubuntu0.20.04.1))
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
Type "help" for help.
netbox=> \conninfo
You are connected to database "netbox" as user "netbox" on host "localhost" (address "127.0.0.1") at port "5432".
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
netbox=> \q
If successful, you will enter a netbox
prompt. Type \conninfo
to confirm your connection, or type \q
to exit.