VPS

⌘K
  1. Home
  2. VPS
  3. Ubuntu
  4. Postgress

Postgress

অনেকসময় মাইক্রোসফট এর কনফ্লিক্ট থাকে চেক করো আগে

Step 1: সব source files দেখুন এবং Microsoft reference খুঁজুন

# sources.list.d এর সব files দেখুন
ls -la /etc/apt/sources.list.d/

# সব files এ microsoft খুঁজুন
grep -r "microsoft" /etc/apt/sources.list.d/

# main sources.list এও check করুন
grep -i "microsoft" /etc/apt/sources.list

Step 2: microsoft.list এর content দেখুন

cat /etc/apt/sources.list.d/microsoft.list

এই commands গুলো run করে output দেখান। তাহলে বুঝতে পারব কোথায় conflict হচ্ছে।

আমার কাছে এরকম একটা আউটপুট এসেছিলো

olee@olee-VivoBook-ASUSLaptop-X415EA-X415EA:~/Desktop/Projects./Projects/sectet$ # sources.list.d এর সব files দেখুন
ls -la /etc/apt/sources.list.d/
# সব files এ microsoft খুঁজুন
grep -r "microsoft" /etc/apt/sources.list.d/
# main sources.list এও check করুন
grep -i "microsoft" /etc/apt/sources.list
total 40
drwxr-xr-x 2 root root 4096 Nov 26 15:58 .
drwxr-xr-x 9 root root 4096 Nov 18 06:33 ..
-rw-r--r-- 1 root root  120 Nov 22 22:37 archive_uri-https_dl_winehq_org_wine-builds_ubuntu_-noble.list
-rw-r--r-- 1 root root 1756 Nov 22 22:37 deadsnakes-ubuntu-ppa-noble.sources
-rw-r--r-- 1 root root  112 Nov 22 22:37 docker.list
-rw-r--r-- 1 root root  190 Nov 22 22:37 google-chrome.list
-rw-r--r-- 1 root root  121 Nov 26 15:58 microsoft.list
-rw-r--r-- 1 root root  138 Nov 22 22:37 mssql-release.list
-rw-r--r-- 1 root root  386 Nov 22 22:37 ubuntu.sources
-rw-r--r-- 1 root root 2552 Aug 27  2024 ubuntu.sources.curtin.orig
/etc/apt/sources.list.d/microsoft.list:deb [arch=amd64 signed-by=/usr/share/keyrings/microsoft.gpg] https://packages.microsoft.com/ubuntu/24.04/prod noble main
/etc/apt/sources.list.d/mssql-release.list:deb [arch=amd64,arm64,armhf signed-by=/usr/share/keyrings/microsoft-prod.gpg] https://packages.microsoft.com/ubuntu/24.04/prod noble main
olee@olee-VivoBook-ASUSLaptop-X415EA-X415EA:~/Desktop/Projects./Projects/sectet$ cat /etc/apt/sources.list.d/microsoft.list
deb [arch=amd64 signed-by=/usr/share/keyrings/microsoft.gpg] https://packages.microsoft.com/ubuntu/24.04/prod noble main

সমস্যা পাওয়া গেছে!

দুইটা file একই URL কে point করছে কিন্তু different GPG key use করছে:

FileGPG Key
microsoft.list/usr/share/keyrings/microsoft.gpg
mssql-release.list/usr/share/keyrings/microsoft-prod.gpg

এটাই conflict!

Fix করুন

Option A: microsoft.list remove করুন (Recommended)

mssql-release.list রাখুন কারণ এটা SQL Server এর জন্য। microsoft.list duplicate, তাই remove করুন:

# Duplicate microsoft.list remove করুন
sudo rm /etc/apt/sources.list.d/microsoft.list

# microsoft.gpg keyring ও remove করুন
sudo rm /usr/share/keyrings/microsoft.gpg

# mssql এর জন্য correct key add করুন (যদি না থাকে)
curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | sudo gpg --dearmor -o /usr/share/keyrings/microsoft-prod.gpg

# Update test করুন
sudo apt update

PostgreSQL Install করুন

sudo apt install postgresql postgresql-contrib -y

PostgreSQL সফলভাবে Install হয়েছে!

এখন PostgreSQL setup করুন এবং visual admin panel (pgAdmin) install করুন।

Step 1: PostgreSQL চলছে কিনা verify করুন

sudo systemctl status postgresql
#যদি চালু না থাকে:
sudo systemctl start postgresql
sudo systemctl enable postgresql

২️⃣ PostgreSQL এর psql shell এ লগইন করা

PostgreSQL installation করার পর, postgres নামে একটি default user থাকে।

Step 2: PostgreSQL এ password set করুন

# postgres user এ switch করুন
sudo -u postgres psql

# Password set করুন (নিচের command টা psql এর ভিতরে run করুন)
ALTER USER postgres WITH PASSWORD 'f34K3j87iXdRV3q!';

# বের হয়ে আসুন
\q

৩️⃣ নতুন user (role) তৈরি করা

Django project এর জন্য একটি dedicated user তৈরি করবো। ধরো username = myuser, password = mypassword

CREATE ROLE myuser WITH LOGIN PASSWORD 'mypassword';
ALTER ROLE myuser CREATEDB;   -- Django migrations করতে database create করতে পারবে

৪️⃣ নতুন database তৈরি করা

CREATE DATABASE mydb OWNER myuser;
#এখন mydb database টা myuser এর মালিক।
# psql থেকে বের হওয়া
\q

৬️⃣ Django সেটিংসে PostgreSQL ব্যবহার করা

settings.py এ database section update করো:

Step 3: pgAdmin 4 Install করুন (Visual Admin Panel)

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'mydb',
        'USER': 'myuser',
        'PASSWORD': 'mypassword',
        'HOST': 'localhost',
        'PORT': '5432',
    }
}

৭️⃣ Python driver ইন্সটল করা

PostgreSQL এর জন্য Python library দরকার:

৮️⃣ Django migrations চালানো

python manage.py migrate

# pgAdmin repository add করুন
curl -fsS https://www.pgadmin.org/static/packages_pgadmin_org.pub | sudo gpg --dearmor -o /usr/share/keyrings/pgadmin-keyring.gpg

# Source list add করুন
echo "deb [signed-by=/usr/share/keyrings/pgadmin-keyring.gpg] https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/$(lsb_release -cs) pgadmin4 main" | sudo tee /etc/apt/sources.list.d/pgadmin4.list

# Web version install করুন
sudo apt install pgadmin4-web -y
# Configure করুন
sudo /usr/pgadmin4/bin/setup-web.sh
---------------------------------------------------------------
এটি আপনাকে email  password দিতে বলবে।
এরপর এটি web interface চালু করবে, সাধারণত:

Firewall / Port খোলা

  • যদি VPS-এ firewall চালু থাকে, তবে 80 বা 443 port খুলতে হবে (http/https এর জন্য)
sudo ufw allow 80
sudo ufw allow 443
sudo ufw enable

Browser থেকে Access

  • আপনার ব্রাউজারে যান:
এরপর browser  `http://localhost/pgadmin4`  access করতে পারবেন।
#vps e evabe jan
http://<VPS-IP>/pgadmin4
  • Login করুন যেই email/password দিয়ে setup করেছেন।
  • এরপর আপনি আপনার PostgreSQL সার্ভার ম্যানেজ করতে পারবেন।

Add New Server click করুন
এই information দিন:

  • Name: Local PostgreSQL (যেকোনো নাম)
  • Connection tab:
  • Host: localhost
  • Port: 5432
  • Username: postgres
  • Password: f34K3j87iXdRV3q! (এর আগে যেটা set করেছেন)


Django-এর জন্য PostgreSQL user, database এবং server setup করা

How can we help?