How To Install PostgreSQL on Ubuntu
PostgreSQL is a powerful, open-source relational database management system used by developers worldwide. In this tutorial, I’ll walk you through the process of installing PostgreSQL on an Ubuntu system.
Installation
To install PostgreSQL on Ubuntu, follow these steps:
-
Install the PostgreSQL package
sudo apt install postgresql postgresql-contrib -
Start the PostgreSQL service
sudo systemctl start postgresql -
Enable PostgreSQL to start on boot
sudo systemctl enable postgresql -
Switch to the PostgreSQL user
sudo -i -u postgres -
Access the PostgreSQL prompt. Once in the PostgreSQL prompt, you can perform various database operations. To exit the prompt, type
\q.psql -
In the PostgreSQL prompt, set the password for the postgres user
ALTER USER postgres PASSWORD 'newpassword';
Enable Remote Access
-
To enable remote access edit the postgresql.conf file to listen on all IP addresses:
-
Open the postgresql.conf file in a text editor. This file is typically located in the
/etc/postgresql/[version]/main/directory.sudo nano /etc/postgresql/[version]/main/postgresql.conf -
Look for the listen_addresses setting and set it to '*':
listen_addresses = '*' -
Save and close the file.
-
-
Edit the pg_hba.conf file to allow remote connections:
-
Open the pg_hba.conf file in a text editor. This file is also located in the /etc/postgresql/[version]/main/ directory.
sudo nano /etc/postgresql/[version]/main/pg_hba.conf -
Add the following line to the end of the file to allow connections from any IP address (replace 192.168.127.0/24 with your specific IP range or 0.0.0.0/0 to allow all IP addresses, though the latter is less secure):
host all all 192.168.127.0/24 md5 -
Save and close the file.
-
-
Restart the PostgreSQL service
sudo systemctl restart postgresql -
Make sure that your firewall allows connections to port 5432
sudo ufw allow 5432/tcp
Create Test Database
Now lets create a quick test database to confirm everything is working as expected.
-
Switch to the PostgreSQL user
sudo -i -u postgres -
Access the PostgreSQL prompt. Once in the PostgreSQL prompt, you can perform various database operations. To exit the prompt, type
\q.psql -
Create a new database
createdb mydatabase -
Confirm the database has been created using the command
\lto list databases. -
Connect to the database
\c mydatabase -
Create a table
CREATE TABLE employees (
id SERIAL PRIMARY KEY,
name VARCHAR(100),
position VARCHAR(50),
salary NUMERIC
); -
Confirm the table was created using the command
\dt -
Insert test data
INSERT INTO employees (name, position, salary) VALUES ('John Doe', 'Manager', 60000);
INSERT INTO employees (name, position, salary) VALUES ('Jane Smith', 'Developer', 55000); -
Execute a simple query
SELECT * FROM employees;
Connect To The Test Database Using Python
-
Install the psycopg2 module
pip install psycopg2-binary -
Create a python file
nano p.pyimport psycopg2
# Database connection parameters
db_params = {
'dbname': 'mydatabase',
'user': 'postgres',
'password': 'yourpassword',
'host': 'localhost',
'port': '5432'
}
try:
# Connect to the PostgreSQL database
connection = psycopg2.connect(**db_params)
cursor = connection.cursor()
# Execute the query
cursor.execute("SELECT * FROM employees;")
# Fetch all the results
rows = cursor.fetchall()
# Print the results
for row in rows:
print(row)
except (Exception, psycopg2.DatabaseError) as error:
print(f"Error: {error}")
finally:
if connection:
cursor.close()
connection.close()
print("PostgreSQL connection is closed") -
Execute the Python file
python3 p.py