Peering Manager requires a PostgreSQL database to store data. This can be hosted locally or on a remote server. Please note that Peering Manager does not support any other database backends as it uses some specific features of PostgreSQL.
If a recent enough version of PostgreSQL (>= 9.6) is not available through your distribution's package manager, you'll need to install it from an official PostgreSQL repository.
# apt-get update # apt-get install -y postgresql libpq-dev
CentOS users also should modify the configuration to accept password-based
authentication by replacing
md5 for all host entries in
Then, ensure that the service is started and enabled to run at boot:
# systemctl start postgresql-9.6 # systemctl enable postgresql-9.6
At a minimum, we need to create a database for Peering Manager and assign it a username and password for authentication.
# sudo -u postgres psql psql (9.6.3) Type "help" for help. postgres=# CREATE DATABASE peering_manager ENCODING 'UTF8' LC_COLLATE = 'en_US.UTF-8' LC_CTYPE = 'en_US.UTF-8' TEMPLATE template0; CREATE DATABASE postgres=# CREATE USER peering_manager WITH PASSWORD 'DoNotUseMe'; CREATE ROLE postgres=# GRANT ALL PRIVILEGES ON DATABASE peering_manager TO peering_manager; GRANT postgres=# \q
You can test that authentication works with the following command. (Replace
localhost with your database server if using a remote database.)
# psql -U peering_manager -W -h localhost peering_manager
If successful, you will enter a
peering_manager prompt. Type
\q to exit.
Migrating encoding to UTF-8
If your database was created with regular another encoding than UTF-8, you will need to migrate it. To convert the database you'll need to drop it and re-create it. It's not mandatory but you may face some issues if the encoding of your database is not set to UTF-8.
$ pg_dump --encoding utf8 peering_manager -f peering_manager.sql postgres=# DROP DATABASE peering_manager; DROP DATABASE postgres=# CREATE DATABASE peering_manager ENCODING 'UTF8' LC_COLLATE = 'en_US.UTF-8' LC_CTYPE = 'en_US.UTF-8' TEMPLATE template0; CREATE DATABASE postgres=# GRANT ALL PRIVILEGES ON DATABASE peering_manager TO peering_manager; GRANT postgres=# \q $ psql -f peering_manager.sql -d peering_manager