آموزش نصب و راهاندازی PostgreSQL روی سرور مجازی
PostgreSQL یکی از قدرتمندترین پایگاههای داده متنباز است و برای پروژههایی که به دادههای پیچیده، تراکنش مطمئن و امکانات پیشرفته نیاز دارند، انتخاب بسیار خوبی است. در این راهنما نصب و پیکربندی اولیه آن را انجام میدهیم.
قدم ۱: نصب
apt update
apt install postgresql postgresql-contrib -y
بررسی وضعیت سرویس:
systemctl status postgresql
psql --version
بسته contrib افزونههای کاربردی را اضافه میکند و نصبش توصیه میشود.
قدم ۲: ورود اولیه
PostgreSQL هنگام نصب یک کاربر سیستمی به نام postgres میسازد:
sudo -u postgres psql
وارد محیط postgres=# میشوید. برای خروج \q بزنید.
قدم ۳: ساخت دیتابیس و کاربر
CREATE DATABASE myapp;
CREATE USER myuser WITH ENCRYPTED PASSWORD 'یک_رمز_قوی';
GRANT ALL PRIVILEGES ON DATABASE myapp TO myuser;
در نسخه ۱۵ به بعد باید دسترسی schema را هم بدهید:
\c myapp
GRANT ALL ON SCHEMA public TO myuser;
تنظیمات پیشنهادی برای کاربر برنامه:
ALTER ROLE myuser SET client_encoding TO 'utf8';
ALTER ROLE myuser SET timezone TO 'Asia/Tehran';
قدم ۴: تست اتصال
psql -U myuser -d myapp -h 127.0.0.1 -W
اگر وارد شدید، دیتابیس آماده استفاده است.
قدم ۵: دسترسی از راه دور (فقط در صورت نیاز)
بهطور پیشفرض PostgreSQL فقط از داخل سرور در دسترس است و این وضعیت امنتر است. اگر واقعاً نیاز دارید از بیرون وصل شوید:
nano /etc/postgresql/14/main/postgresql.conf
listen_addresses = '*'
سپس در فایل دسترسی، فقط IP مشخص را مجاز کنید:
nano /etc/postgresql/14/main/pg_hba.conf
host myapp myuser 203.0.113.5/32 scram-sha-256
و در فایروال هم فقط همان IP را باز کنید:
ufw allow from 203.0.113.5 to any port 5432
systemctl restart postgresql
هرگز پورت ۵۴۳۲ را برای همه اینترنت باز نگذارید؛ این کار یکی از رایجترین دلایل نشت اطلاعات است. گزینه امنتر، تونل SSH است:
ssh -L 5432:localhost:5432 root@SERVER_IP
با این کار روی کامپیوتر خودتان به localhost:5432 وصل میشوید بدون اینکه پورتی روی اینترنت باز شود.
قدم ۶: بکاپ و بازیابی
گرفتن بکاپ از یک دیتابیس:
sudo -u postgres pg_dump myapp > /root/myapp.sql
sudo -u postgres pg_dump myapp | gzip > /root/myapp-$(date +%F).sql.gz
بکاپ از همه دیتابیسها:
sudo -u postgres pg_dumpall > /root/all.sql
بازیابی:
sudo -u postgres psql myapp < /root/myapp.sql
برای بکاپ خودکار شبانه، این دستور را در cron بگذارید — روش کار در مقاله زمانبندی کارها با Cron توضیح داده شده است.
دستورات پرکاربرد psql
\l # لیست دیتابیسها
\c myapp # اتصال به دیتابیس
\dt # لیست جدولها
\d tablename # ساختار جدول
\du # لیست کاربران
\q # خروج
تنظیم کارایی برای سرور کوچک
مقادیر پیشفرض PostgreSQL محافظهکارانه است. برای سروری با ۲ گیگابایت رم:
shared_buffers = 512MB
effective_cache_size = 1GB
work_mem = 16MB
maintenance_work_mem = 128MB
قاعده سرانگشتی: shared_buffers حدود یکچهارم رم و effective_cache_size حدود نصف رم.
PostgreSQL یا MySQL؟
- PostgreSQL: برای دادههای پیچیده، JSON، جستوجوی متنی پیشرفته و پروژههایی که یکپارچگی داده اهمیت زیادی دارد.
- MySQL: سازگاری بیشتر با اکوسیستم PHP و وردپرس، سادگی بیشتر برای شروع.
برای وردپرس باید MySQL استفاده کنید — راهنمای آن در مقاله نصب MySQL روی سرور مجازی آمده است.
جمعبندی
نصب PostgreSQL ساده است؛ نکته مهم، ایمن نگه داشتن آن است: دسترسی از راه دور را باز نکنید مگر با محدودیت IP یا تونل SSH، و بکاپ خودکار را از همان روز اول تنظیم کنید.
اگر هنوز سرور ندارید، میتوانید از صفحه پلنهای سرور مجازی ایران یک سرور با تحویل آنی تهیه کنید؛ سرور بلافاصله پس از پرداخت و در کمتر از یک دقیقه تحویل داده میشود.
سرور مجازی ایران با تحویل آنی میخواهید؟
تحویل خودکار در کمتر از یک دقیقه، دیتاسنتر داخل ایران، دسترسی کامل root و پشتیبانی 24 ساعته.
مشاهده پلنها و قیمتها