Installing PostgreSQL on Ubuntu
Welcome to this detailed guide on installing PostgreSQL, one of the most advanced and robust open-source relational database systems, on Ubuntu. PostgreSQL, often simply called Postgres, is known for its reliability, feature robustness, and performance. It's a favorite among developers and enterprises alike for its compliance with SQL standards and its ability to handle complex queries.
Whether you're a seasoned database administrator or a newcomer to the world of databases, this guide will walk you through the process of installing PostgreSQL on your Ubuntu system step by step. We'll cover everything from the initial setup to verifying the installation, ensuring you have a solid foundation to start working with Postgres.
Prerequisites
Before we begin, ensure that you have:
- An Ubuntu system (Desktop or Server edition) with sudo privileges.
- Access to a terminal window (Ctrl+Alt+T on Ubuntu Desktop).
- An active internet connection to download the necessary packages.
Step 1: Update Package Lists
The first step in any package installation is to update your system's package lists to ensure you have the latest information on available packages and their dependencies.
sudo apt update
Step 2: Install PostgreSQL
With your package lists updated, you can now install PostgreSQL using the apt
package management tool.
sudo apt install postgresql postgresql-contrib
The postgresql-contrib
package contains additional utilities and functionality that extend PostgreSQL's capabilities.
You should see a series of messages as packages are downloaded and installed. Upon completion, you'll be notified that the installation is finished.
Step 3: Verify Installation
After installation, PostgreSQL should be running. You can check its status with the following command:
sudo systemctl status postgresql
Output:
● postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
Active: active (exited) since Wed 2023-04-05 15:00:00 UTC; 15min ago
Process: 12345 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
Main PID: 12345 (code=exited, status=0/SUCCESS)
Tasks: 0 (limit: 4915)
Memory: 0B
CGroup: /system.slice/postgresql.service
The active (exited)
status might seem counterintuitive, but it's normal for PostgreSQL. The actual PostgreSQL server processes are managed by a separate service, postgresql@version-main
, which is started automatically when needed.
Step 4: Access the PostgreSQL Database Server
PostgreSQL creates a user named postgres
during installation. You'll need to switch to this user to interact with the database server.
sudo -i -u postgres
Now, access the PostgreSQL command-line interface, psql
:
psql
Output:
psql (13.1 (Ubuntu 13.1-1.pgdg20.04+1))
Type "help" for help.
postgres=#
The postgres=#
prompt indicates that you are now interacting with the PostgreSQL database server.
Step 5: Create a New Database User and Database
By default, PostgreSQL is set up with a postgres
user and database. For security and organizational purposes, it's best practice to create a new user and database for your applications.
Let's create a new user and database:
CREATE USER myuser WITH PASSWORD 'mypassword';
CREATE DATABASE mydatabase OWNER myuser;
Note: Replace myuser
and mypassword
with your desired username and password. Also, use a strong password in a real-world scenario.
Step 6: Configure PostgreSQL for Remote Access (Optional)
If you need to access your PostgreSQL server from a remote machine, you'll need to configure it to listen on all network interfaces and modify the pg_hba.conf
file for authentication.
Edit the PostgreSQL configuration file:
sudo nano /etc/postgresql/13/main/postgresql.conf
Find the line that specifies listen_addresses
and change it to:
listen_addresses = '*'
Next, edit the pg_hba.conf
file:
sudo nano /etc/postgresql/13/main/pg_hba.conf
Add a line to allow your remote IP address to connect:
host all myuser 192.168.1.2/32 md5
Replace 192.168.1.2/32
with your remote IP address.
After making these changes, restart PostgreSQL to apply them:
sudo systemctl restart postgresql
Step 7: Secure Your PostgreSQL Installation
Security is paramount, especially for databases. Here are some tips to secure your PostgreSQL installation:
- Regularly update your system and PostgreSQL to the latest versions.
- Use strong passwords and consider additional authentication methods like
peer
orident
for local connections. - Limit network access to trusted IP addresses.
- Use SSL connections for remote access.
- Regularly back up your databases.
You have now successfully installed PostgreSQL on your Ubuntu system. You've learned how to access the database server, create new users and databases, and configure PostgreSQL for remote access.